Yanıtlar:
Nesne Gezgini'ndeki SSMS'de veritabanına sağ tıklayın, sağ tıklayın ve "Görevler" i ve ardından "Komut Dosyaları Oluştur" u seçin.
Bu, tek veya tüm tablolar için komut dosyaları oluşturmanıza olanak tanır ve seçeneklerden biri "Kod Verileri" dir. Bunu DOĞRU olarak ayarlarsanız, sihirbaz verileriniz için INSERT INTO () ifadesine sahip bir komut dosyası oluşturur.
2008 R2 veya 2012 kullanılıyorsa buna başka bir şey denirse, bunun altındaki ekran görüntüsüne bakın
"Yalnızca Veri", "Şema ve Veri" veya "Yalnızca Şema" olabilen "Komut Dosyasına Veri Türleri" ni seçin - varsayılan).
Ve hemen hemen aynı işlevselliği ve birkaçını (hızlı bulma gibi) vaat eden bir " SSMS Eklentisi " Paketi var (kaynak dahil).
Aşırı müstehcenlik uğruna, marc_s'ın buradaki talimatlarını izledikten sonra ...
Nesne Gezgini'nde SSMS'de, veritabanına sağ tıklayın ve "Görevler" i ve ardından "Komut Dosyaları Oluştur" u seçin.
... Daha sonra altta bulunan önceki, sonraki, sonlandır, iptal düğmelerini içeren " Giriş, Nesneleri Seç, Komut Dosyası Seçeneklerini Ayarla, Özet ve Komut Dosyalarını Kaydet veya Yayınla " ile bir sihirbaz ekranı görüyorum .
On Set Komut Dosyası Seçenekleri adım , etmelisin "Gelişmiş" tıklayın seçenekleri ile sayfayı almak. Daha sonra Ghlouw'un belirttiği gibi, şimdi "Komut dosyası için veri türleri" ve karı seçersiniz.
SQLServer 2008R2 kullanıyorsanız komut dosyası veri türlerini ayarlamanız gerekir.
SQL Server 2008 R2 çalıştırıyorsanız, yukarıda açıklanan marc_s olarak SSMS'de bunu yapmak için yerleşik seçenekler biraz değişti. Şemasında Script data = true
gösterildiği gibi seçmek yerine , artık "Types of data to script"
"Tablo / Görünüm Seçenekleri" gruplamasının hemen üstünde yeni bir seçenek var . Burada yalnızca verileri, şema ve verileri veya yalnızca şemaları komut dosyası olarak seçebilirsiniz. Tıkır tıkır çalışıyor.
Bir komut satırı sürümü arayanlar için Microsoft bunu yapmak üzere serbest bırakıldımssql-scripter
:
$ pip install mssql-scripter
# Generate DDL scripts for all database objects and DML scripts (INSERT statements)
# for all tables in the Adventureworks database and save the script files in
# the current directory
$ mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data \
-f './' --file-per-object
2019'da daha yeni bir v18 kullanırken başkalarına yardımcı olmak için ekran görüntülerini güncellemem yeterli.
Burada belirli tabloları seçebilir veya hepsinin varsayılanı ile gidebilirsiniz. Kendi ihtiyaçlarım için sadece bir tabloyu gösteriyorum.
Daha sonra, çıktı dosyası vb. Seçebileceğiniz "Komut Dosyası Seçenekleri" var. "Gelişmiş" düğmesinin altındadır. Kendi amaçlarım için sadece verilere ihtiyacım var.
Son olarak, yürütmeden önce bir inceleme özeti vardır. Bir rapor yürütüldükten sonra işlemlerin durumu gösterilir.
Ayrıca, SQL Server Management Studio 2008 için "Data Scripter Eklentisi" ne de göz atabilirsiniz:
http://www.mssql-vehicle-data.com/SSMS
Özellikler listesi:
SSMS 2008'de geliştirilmiştir ve şu anda 2005 sürümünde desteklenmemektedir (yakında!)
Verileri MSSQL ve MySQL sözdizimi için hızlı bir şekilde T-SQL'e aktarın
CSV, TXT, XML de desteklenmektedir! SQL'in sunduğu tam potansiyeli, gücü ve hızı kullanın.
Access'in veya Excel'in birkaç dakika sürebilen komut dosyası çalışması yapmasını beklemeyin - SQL Server'ın sizin için yapmasına izin verin ve verilerinizi dışa aktarmak için tüm tahminde bulunun!
Hızlı yedekleme, DDL yönetimi ve daha fazlası için veri çıkışınızı özelleştirin ...
Tablo adlarını ve veritabanı şemalarını hızlı ve verimli bir şekilde ihtiyaçlarınıza göre değiştirin
Sütun adlarını dışa aktarın veya yalnızca adlar olmadan veri oluşturun.
Komut dosyası oluşturmak için ayrı ayrı sütunlar seçebilirsiniz.
Verilerin alt kümelerini seçebilirsiniz (WHERE yan tümcesi).
Verilerin sırasını seçebilirsiniz (ORDER BY yan tümcesi).
Veri manipülasyonu gerektiren bu eski veritabanı hata ayıklama işlemleri için harika bir yedekleme aracı. Deneme sırasında veri kaybetmeyin. Anında veri manipüle!
Yukarıdakilerin hepsi güzel, ama gerekiyorsa
o zaman aşağıdaki hile tek ve tek yoldur.
Önce kaynak db komut satırı istemcisinden biriktirme dosyaları oluşturmayı veya sonuç kümelerini dışa aktarmayı öğrenin. İkinci hedef db sql deyimlerini yürütmek öğrenmek.
Son olarak, kaynak veritabanı üzerinde bir sql betiği çalıştırarak hedef veritabanı için insert deyimleri (ve diğer deyimler) oluşturun. Örneğin
SELECT '-- SET the correct schema' FROM dual;
SELECT 'USE test;' FROM dual;
SELECT '-- DROP TABLE IF EXISTS' FROM dual;
SELECT 'IF OBJECT_ID(''table3'', ''U'') IS NOT NULL DROP TABLE dbo.table3;' FROM dual;
SELECT '-- create the table' FROM dual;
SELECT 'CREATE TABLE table3 (column1 VARCHAR(10), column2 VARCHAR(10));' FROM dual;
SELECT 'INSERT INTO table3 (column1, column2) VALUES (''', table1.column1, ''',''', table2.column2, ''');' FROM table1 JOIN table2 ON table2.COLUMN1 = table1.COLUMN1;
Yukarıdaki örnek, tablo içermeyen seçimler için ikili kullanımın gerekli olduğu Oracle'ın db'si için oluşturulmuştur.
Sonuç kümesi hedef db için komut dosyası içerecektir.
Burada, kaynak tabloyu yinelemek için bir imleç kullanarak veri taşıma komut dosyası oluşturma örneği verilmiştir.
SET NOCOUNT ON;
DECLARE @out nvarchar(max) = ''
DECLARE @row nvarchar(1024)
DECLARE @first int = 1
DECLARE cur CURSOR FOR
SELECT '(' + CONVERT(CHAR(1),[Stage]) + ',''' + [Label] + ''')'
FROM CV_ORDER_STATUS
ORDER BY [Stage]
PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS ON'
PRINT 'GO'
PRINT 'INSERT INTO dbo.CV_ORDER_STATUS ([Stage],[Label]) VALUES';
OPEN cur
FETCH NEXT FROM cur
INTO @row
WHILE @@FETCH_STATUS = 0
BEGIN
IF @first = 1
SET @first = 0
ELSE
SET @out = @out + ',' + CHAR(13);
SET @out = @out + @row
FETCH NEXT FROM cur into @row
END
CLOSE cur
DEALLOCATE cur
PRINT @out
PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS OFF'
PRINT 'GO'
Çok aradıktan sonra, bu benim en iyi çekimimdi:
Çok fazla veriye sahipseniz ve kompakt ve zarif bir komut dosyasına ihtiyacınız varsa deneyin: SSMS Tools Pack
Hedef tablolara öğe eklemek ve işlemleri oldukça iyi işlemek için tüm seçme ifadeleri birliği oluşturur.