जवाबों:
ऑब्जेक्ट एक्सप्लोरर में SSMS में, डेटाबेस पर राइट-क्लिक करें, "टास्क" पर राइट-क्लिक करें और फिर "स्क्रिप्ट जेनरेट करें"।
यह आपको एकल या सभी तालिकाओं के लिए स्क्रिप्ट उत्पन्न करने की अनुमति देगा, और विकल्पों में से एक "स्क्रिप्ट डेटा" है। यदि आप इसे TRUE पर सेट करते हैं, तो विज़ार्ड आपके डेटा के लिए INSERT INTO () स्टेटमेंट के साथ एक स्क्रिप्ट उत्पन्न करेगा।
यदि 2008 R2 या 2012 का उपयोग करते हुए इसे कुछ और कहा जाता है, तो नीचे दिए गए स्क्रीनशॉट को देखें
"स्क्रिप्ट के प्रकार के डेटा" का चयन करें जो "डेटा ओनली", "स्कीमा और डेटा" या "स्कीमा ओनली" - डिफ़ॉल्ट हो सकता है)।
और फिर वहाँ एक " SSMS ऐड " Codeplex (स्रोत सहित) जो बहुत ज्यादा एक ही कार्यक्षमता और कुछ और (त्वरित लगता है जैसे आदि) का वादा किया पर पैकेज
अधिक स्पष्ट बुद्धिहीनता के लिए, यहाँ पर marc_s के निर्देशों का पालन करने के बाद ...
ऑब्जेक्ट एक्सप्लोरर में एसएसएमएस में, डेटाबेस पर राइट-क्लिक करें और "टास्क" चुनें और फिर "जनरेट स्क्रिप्ट्स" को चुनें।
... मैं फिर " परिचय, ऑब्जेक्ट्स, सेट स्क्रिप्टिंग विकल्प, सारांश और सहेजें या प्रकाशित स्क्रिप्ट प्रकाशित " के साथ एक विजार्ड स्क्रीन देखता हूं , जिसके निचले भाग में अगले, अगले, समाप्त बटन को रद्द करता है।
पर सेट स्क्रिप्टिंग विकल्प कदम है, तो आप के लिए है पर क्लिक करें "उन्नत" विकल्प के साथ पेज को पाने के लिए। फिर, जैसा कि घ्लौव ने उल्लेख किया है, अब आप "स्क्रिप्ट के प्रकार के डेटा" और लाभ का चयन करें।
यदि आप इसे SQLServer 2008R2 का उपयोग करते हैं, तो आपको स्क्रिप्ट फ़ील्ड में डेटा के प्रकार सेट करने की आवश्यकता है।
यदि आप SQL Server 2008 R2 को SSMS में ऐसा करने के लिए निर्मित विकल्पों में चला रहे हैं, जैसा कि ऊपर वर्णित marc_s ने थोड़ा बदल दिया है। Script data = true
उसके आरेख में दिखाए अनुसार चयन करने के बजाय , अब एक नया विकल्प है जिसे "Types of data to script"
"तालिका / दृश्य विकल्प" समूह के ठीक ऊपर कहा जाता है । यहां आप केवल स्क्रिप्ट डेटा, स्कीमा और डेटा या स्कीमा का चयन कर सकते हैं। एक जादू की तरह काम करता है।
कमांड लाइन संस्करण की तलाश करने वालों के लिए, Microsoft ने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
जैसे ही मैं एक नया v18, लगभग 2019 का उपयोग कर रहा हूं, दूसरों की सहायता के लिए स्क्रीनशॉट अपडेट कर रहा हूं।
यहां आप कुछ तालिकाओं का चयन कर सकते हैं या सभी के डिफ़ॉल्ट के साथ जा सकते हैं। अपनी जरूरतों के लिए मैं सिर्फ एक तालिका का संकेत कर रहा हूं।
इसके बाद, "स्क्रिप्टिंग विकल्प" है, जहां आप आउटपुट फ़ाइल आदि चुन सकते हैं, जैसा कि ऊपर दिए गए कई उत्तरों में है (फिर से, मैं नए, वी 18.4 एसक्यूएल सर्वर मैनेजमेंट स्टूडियो के पुराने उत्तरों को हटा रहा हूं) जो हम वास्तव में चाहते हैं। "उन्नत" बटन के नीचे है। अपने स्वयं के प्रयोजनों के लिए, मुझे केवल डेटा की आवश्यकता है।
अंत में, निष्पादन से पहले एक समीक्षा सारांश है। संचालन की रिपोर्ट निष्पादित करने के बाद स्थिति को दिखाया जाता है।
आप SQL सर्वर प्रबंधन स्टूडियो 2008 के लिए "डेटा स्क्रिप्ट एड-इन" भी देख सकते हैं:
http://www.mssql-vehicle-data.com/SSMS
उनकी विशेषताएं सूची:
यह SSMS 2008 में विकसित किया गया था और इस समय (जल्द ही!) 2005 संस्करण पर समर्थित नहीं है!
MSSQL और MySQL सिंटैक्स के लिए T-SQL को डेटा जल्दी से निर्यात करें
CSV, TXT, XML भी समर्थित हैं! एसक्यूएल की पेशकश करने के लिए पूरी क्षमता, शक्ति और गति का उपयोग करें।
आपके लिए स्क्रिप्टिंग का काम करने के लिए एक्सेस या एक्सेल की प्रतीक्षा न करें, जो करने में कई मिनट लग सकते हैं - SQL सर्वर आपके लिए इसे करें और अपने डेटा को निर्यात करने के लिए सभी अनुमान कार्य करें!
तेजी से बैकअप, DDL हेरफेर, और अधिक के लिए अपने डेटा आउटपुट को अनुकूलित करें ...
जल्दी और कुशलता से अपनी आवश्यकताओं के लिए तालिका के नाम और डेटाबेस स्कीमा बदलें
स्तंभ नाम निर्यात करें या केवल नामों के बिना डेटा उत्पन्न करें।
आप स्क्रिप्ट के लिए अलग-अलग कॉलम चुन सकते हैं।
आप डेटा के उप-सेट (WHERE क्लॉज) चुन सकते हैं।
आप डेटा का ऑर्डर चुन सकते हैं (आदेश द्वारा खंड)।
उन गंभीर डेटाबेस डिबगिंग ऑपरेशन के लिए महान बैकअप उपयोगिता जिसमें डेटा हेरफेर की आवश्यकता होती है। प्रयोग करते समय डेटा न खोएं। मक्खी पर डेटा हेरफेर!
उपरोक्त सभी अच्छा है, लेकिन अगर आपको आवश्यकता है
फिर निम्नलिखित चाल एक और एकमात्र तरीका है।
सबसे पहले स्पूल फाइल्स बनाना या सोर्स डीबी कमांड लाइन क्लाइंट से एक्सपोर्ट रिजल्ट सेट बनाना सीखें। दूसरा गंतव्य गंतव्य पर sql कथनों को निष्पादित करना सीखें।
अंत में, स्रोत डेटाबेस पर एक sql स्क्रिप्ट चलाकर गंतव्य डेटाबेस के लिए सम्मिलित विवरण (और किसी भी अन्य कथन) बनाएँ। जैसे
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;
उपरोक्त उदाहरण ओरेकल के डीबी के लिए बनाया गया था जहां टेबल-कम चयन के लिए दोहरे का उपयोग आवश्यक है।
परिणाम सेट में गंतव्य db के लिए स्क्रिप्ट होगी।
यहां स्रोत तालिका को पुनरावृत्त करने के लिए कर्सर का उपयोग करके डेटा माइग्रेशन स्क्रिप्ट बनाने का एक उदाहरण है।
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'
बहुत खोज के बाद, यह मेरा सबसे अच्छा शॉट था:
यदि आपके पास बहुत अधिक डेटा है और कॉम्पैक्ट और सुरुचिपूर्ण स्क्रिप्ट की आवश्यकता है, तो इसे आज़माएं: SSMS टूल्स पैक
यह लक्ष्य तालिकाओं में आइटम सम्मिलित करने और लेन-देन को बहुत अच्छी तरह से संभालने के लिए एक संघ का चयन करता है।