Bir coğumuz SQL Server üzerinde sorgu testleri yapmak ve büyük boyutlu databaselerde sorgularımızın analizini yapmak için test datası oluşturma ihtiyacımız olmuştur. Bu işlemleri yapmak için 3.party yazılımlar kullanabileceğimiz gibi kendimizde T-SQL komutları kullanarak bu işlemi yapabiliriz. Bu makalemde sizlere T-SQL kullanarak test datası oluşturma işlemimizi anlatmak istiyorum.
Bu işlemi oluşturma esnasında ilk prosesim bir table oluşturmak olacak. Bu tableım 1 adet nvrchar primary key kolon ve 4 adet ise date kolonum içerecek. T-SQL döngüleri ve random sayı üreticileri ile bu tabloyu doldurmak istiyorum.
CREATE TABLE dbo.TestTableSize
(
MyKeyField VARCHAR(10) NOT NULL,
MyDate1 DATETIME NOT NULL,
MyDate2 DATETIME NOT NULL,
MyDate3 DATETIME NOT NULL,
MyDate4 DATETIME NOT NULL,
MyDate5 DATETIME NOT NULL
)
Tableımı oluşturduktan sonra Aşağıdaki script kullanarak değişkenleri oluşturuyoruz ve döngümüzün ne kadar çalışacağını belirliyoruz. Döngümüzü çalıştırırak tablomuzu dolduruyoruz. Sizde tablomuz üzerinde ve T-SQL scriptimizde değişiklik yaparak sorguyu özelleştirebilir ve kendi test datamızı doldurabiliriz.
DECLARE @RowCount INT
DECLARE @RowString VARCHAR(10)
DECLARE @Random INT
DECLARE @Upper INT
DECLARE @Lower INT
DECLARE @InsertDate DATETIME
SET @Lower = -730
SET @Upper = -1
SET @RowCount = 0
WHILE @RowCount < 3000000
BEGIN
SET @RowString = CAST(@RowCount AS VARCHAR(10))
SELECT @Random = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)
SET @InsertDate = DATEADD(dd, @Random, GETDATE())
INSERT INTO TestTableSize
(MyKeyField
,MyDate1
,MyDate2
,MyDate3
,MyDate4
,MyDate5)
VALUES
(REPLICATE('0', 10 - DATALENGTH(@RowString)) + @RowString
, @InsertDate
,DATEADD(dd, 1, @InsertDate)
,DATEADD(dd, 2, @InsertDate)
,DATEADD(dd, 3, @InsertDate)
,DATEADD(dd, 4, @InsertDate))
SET @RowCount = @RowCount + 1
END
Sql Server DateTime Veri Tipindeki Datayı Türkçe Formatında Göstermek
SQL'de tarihleri farklı formatlarda göstermek için FORMAT fonksiyonunu kullanabilirsiniz. Türkçe kısa tarih formatı genellikle "...
-
Bugün sizlere SQL Server 2012 ile gelen bir fonksiyon olan Concat fonksiyonundan bahsetmek istiyorum. Concat fonksiyonu 2 veya daha fazla ...
-
SET NO COUNT : set nocount on olarak ayarlandığında, sayım d öndürülmez. set nocount off olduğunda, sayısı döner. Yapılması gereken sorg...