Generate Insert Script

Prosedür, kendisine parametre olarak verilmiş olan table yada view’in yapısına uygun olan INSERT ifadelerini oluşturur. Daha sonrasında bu INSERT ifadelerini kullanarak verilerinizi tekrar tabloya insert edebilirsiniz. Database uygulamalarınızı paket haline getirmek için faydalı bir araç olmasıyla berabar bazı durumlarda çok kullanışlı olabilmektedir. Örneğin bir uygulamaya teknik destek vereceğiniz zaman örnek verileri bu prosedürü kullanarak hızlı bir şekilde oluşturabilirsiniz.

SQL Server 2000 versiyonunu indirmek için tıklayınız.

SQL Server 2005 versiyonunu indirmek için tıklayınız.


Örnek kullanım :

--titles tablosuna ait INSERT script'ini oluşturur.
EXEC sp_generate_inserts 'titles'

--titles tablosundaki verileri titlesCopy tablosuna INSERT edecek script'i oluşturur.
EXEC sp_generate_inserts 'titles', 'titlesCopy'

--mytable tablosundaki IDENTITY kolonu göz ardı ederek INSERT script'i oluşturur.
EXEC sp_generate_inserts 'mytable', @ommit_identity = 1

--mytable tablosundaki top 10 kayıt için INSERT script'i oluşturur.
EXEC sp_generate_inserts 'mytable', @top = 10

--titles tablosundan istediğiniz kolonlara bağlı olarak INSERT script'i oluşturur.
EXEC sp_generate_inserts 'titles', @cols_to_include = "'title','title_id','au_id'

--To avoid scripting data from computed columns:
EXEC sp_generate_inserts MyTable, @ommit_computed_cols = 1

Örnek Sonuç :

EXEC sp_generate_inserts 'UNITS'

INSERT INTO [UNITS] ([UNIT_ID],[UNIT_NAME])VALUES(3,'Adet')
INSERT INTO [UNITS] ([UNIT_ID],[UNIT_NAME])VALUES(21,'Koli')
INSERT INTO [UNITS] ([UNIT_ID],[UNIT_NAME])VALUES(25,'Litre')

Eğer database’inizde bulunan tüm tablolar için INSERT ifadeleri oluşturmak istiyor iseniz aşağıdaki script ile bu işlemi gerçekleştirebilirsiniz.

SELECT 'EXEC sp_generate_inserts ' + 
'[' + name + ']' + 
',@owner = ' + 
'[' + RTRIM(USER_NAME(uid)) + '],' + 
'@ommit_images = 1, @disable_constraints = 1'
FROM sysobjects 
WHERE type = 'U' AND 
OBJECTPROPERTY(id,'ismsshipped') = 0

Kaynak ;

Narayana Vyas Kondreddi’s Blog

Bir cevap yazın