20 Haziran 2009 Cumartesi

SQL Server ROLLBACK ve @@ERROR Flag

2 aşamadan oluşan bir işlemde birinci başarısız olursa ikinci işleme geçilmesini engellemek isteyebilirsiniz.

O zaman devreye bu rollback ( geri sarma) mevzusu giriyor.

Örnek senaryo;

BEGIN TRANSACTION
--temp db deki temp tabloya tasi
INSERT INTO rollback_table (ProductID,Name)
Select
ProductID, Name
From
tmp_table(NOLOCK)

--yukardaki islem basarili degilse bitir
IF @@ERROR<>0
BEGIN

ROLLBACK
RETURN 0
END
--datalari sil
DELETE FROM tmp_table
COMMIT TRANSACTION

Sql Server ile Median ( Ortanca kaydı ) Bulma

Lazım oldu araştırdık kullandık gerçekten işe yarıyor..

WITH RN AS
(
SELECT groupid, val,
ROW_NUMBER() OVER(PARTITION BY groupid ORDER BY val, memberid) AS rna,
ROW_NUMBER() OVER(PARTITION BY groupid ORDER BY val DESC, memberid DESC) AS rnd
FROM dbo.Groups
)

SELECT groupid, AVG(1.*val) AS median
FROM RN
WHERE ABS(rna - rnd) <= 1
GROUP BY groupid;


http://www.evanreiser.com/2007/07/calculating-medians-in-tsql-using-2005.html



ASP.NET Datatable colmn var mı ?

Column 'AnyColumn' does not belong to table Table

hata mesajı yukardaki gibi bunu kontrol edebileceğiniz güzel bir komut ;

if (globalDataTable.Columns[_firmList[j].FirmID.ToString()] != null)

bu kontrol işinizi görüyor...

Sql Server IDENTITY INSERT engeli...

Bazen bir tabloya zorlada olsa kayıt girmeniz gerekiyor o zaman o gün geldiğine buna izin verilmiyorsa...


Msg 544, Level 16, State 1, Procedure SP_MOVE_PRICE_TMP, Line 33
Cannot insert explicit value for identity column in table 'tmp_Reports' when IDENTITY_INSERT is set to OFF.


SET IDENTITY_INSERT table ON
EXEC SP_MOVE_PRICE_TMP
SET IDENTITY_INSERT table OFF


diyerek engeli aşabilrisiniz...

Sql Server temp tablo var mı yok mu ?


IF OBJECT_ID('tempdb..#tmp') IS NOT NULL DROP TABLE #tmp


Erginin dediğine göre en iyi komut buymuş...

Sql Server Stored Procedure out parametresini kullanma

Her zaman karşımıza çıkmıyor ama bazen gerçekten lazım olan bir komut unutanlar için hatırlatalım...

CREATE PROCEDURE [dbo].[test]
@a int,
@TotaltCount int out

SET @TotaltCount = 10


şimdi bu sp yi kullanarak dönderdiği parametreyi alalım;

DECLARE @ Count2 int
exec [PRW_SEL_SEARCH] 1,@Count2 output
select @ Count2

Vmware de mecut diskinizin alanını büyütmek

Sizde benim gibi cimrilik edip diskinizi küçük tuttuysanız ve pişman olduysanız üzülmeyin kolayı var...

Öncelikle disk alanını genişleteceğiniz sistem çalışıyorsa kapatın ardından...

Başlat->Çalıştır->cmd

virtual diskinizin olduğu klasöre gidip şöyle değin;

D:\Virtual Machines\Windows XP Professional>"C:\Program Files\VMware\VMware Serv
er\vmware-vdiskmanager" -x 20GB "Windows XP Professional.vmdk"


Ardından işlemin başladığını göreceksiniz...

Bu bitince
Bilgisayarıma sağ tıkla
Yönet
Storage (Kapasite)
Disk yöneticisinden yeri belirlenmemiş disk parçasını bulup oluştur deyin..

Başka bir disk programıylada bu diski C ye dahil edebilirsiniz.

Kullandığım ve önerdiğim: AcronisDiskcreator.rar


Mutlu son...

4 Haziran 2009 Perşembe

mysql restart ettiginizde calismiyor veya InnoDB: default storage engine is not available hatalar veriyorsa

Mysql ,

bazen bilinmeyen bir sebeple calismaya bilir hata mesajlari asagidaki gibidir;

Cozumu ise oldukca basit ;

[mysqld]
tmpdir=C:/temp

Kaynak: http://dev.mysql.com/doc/refman/5.0/en/cannot-create.html

default storage engine is not available

InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
090603 13:27:55 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.

InnoDB: The first specified data file .\ibdata1 did not exist:
InnoDB: a new database to be created!
080916 4:10:41 InnoDB: Setting file .\ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
080916 4:10:41 InnoDB: Log file .\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile0 size to 50 MB
InnoDB: Database physically writes the file full: wait...
080916 4:10:42 InnoDB: Log file .\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file .\ib_logfile1 size to 50 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
080916 4:10:44 InnoDB: Started; log sequence number 0 0
080916 4:10:44 [Note] C:\MySQL5\bin\mysqld-nt: ready for connections.
Version: '5.0.67-community-nt' socket: '' port: 3306 MySQL Community Edition (GPL)
080918 3:01:30 [Note] C:\MySQL5\bin\mysqld-nt: Normal shutdown