SQL सर्वर में डेटा को INSERT के रूप में निर्यात करना




sql-server data-migration (6)

अधिक स्पष्ट दिमागहीनता के लिए, यहां marc_s के निर्देशों का पालन करने के बाद ...

ऑब्जेक्ट एक्सप्लोरर में एसएसएमएस में, राइट-क्लिक करें डेटाबेस पर राइट-क्लिक करें और "कार्य" चुनें और फिर "स्क्रिप्ट जेनरेट करें" चुनें।

... फिर मैं " परिचय, ऑब्जेक्ट्स चुनें, स्क्रिप्टिंग विकल्प सेट करें, सारांश, और सहेजें या प्रकाशित स्क्रिप्ट्स " के साथ एक विज़ार्ड स्क्रीन देखें, नीचे, अगला, समाप्त करें, नीचे दिए गए बटन रद्द करें।

सेट स्क्रिप्टिंग विकल्प चरण पर , विकल्पों को पृष्ठ प्राप्त करने के लिए आपको "उन्नत" पर क्लिक करना होगा। फिर, जैसा कि Ghlouw ने उल्लेख किया है, अब आप "स्क्रिप्ट के लिए डेटा के प्रकार" और लाभ का चयन करते हैं।

मैं SQL सर्वर 2008 प्रबंधन स्टूडियो का उपयोग कर रहा हूं और एक टेबल है जिसे मैं एक अलग डीबी सर्वर पर माइग्रेट करना चाहता हूं।

एसक्यूएल स्क्रिप्ट में डालने के रूप में डेटा निर्यात करने के लिए कोई विकल्प है ??


आप SQL सर्वर प्रबंधन स्टूडियो 2008 के लिए "डेटा स्क्रिप्टर ऐड-इन" भी देख सकते हैं:

http://www.mssql-vehicle-data.com/SSMS

उनकी विशेषताएं सूची:

  • यह एसएसएमएस 2008 पर विकसित किया गया था और इस समय 2005 संस्करण पर समर्थित नहीं है (जल्द ही!)

  • MSSQL और MySQL वाक्यविन्यास के लिए टी-एसक्यूएल में डेटा को जल्दी से निर्यात करें

  • सीएसवी, टीXT, एक्सएमएल भी समर्थित हैं! एसक्यूएल की पेशकश की पूरी क्षमता, शक्ति और गति को दोहन करें।

  • एक्सेस या एक्सेल के लिए स्क्रिप्टिंग कार्य करने की प्रतीक्षा न करें जो करने में कई मिनट लग सकते हैं - एसक्यूएल सर्वर इसे आपके लिए करें और अपने अनुमान को अपने डेटा को निर्यात करने से बाहर ले जाएं!

  • तेजी से बैकअप, डीडीएल हेरफेर, और अधिक के लिए अपने डेटा आउटपुट को अनुकूलित करें ...

  • जल्दी और कुशलता से अपनी आवश्यकताओं के लिए तालिका के नाम और डेटाबेस स्कीमा बदलें

  • कॉलम नाम निर्यात करें या नामों के बिना डेटा जेनरेट करें।

  • आप स्क्रिप्ट के लिए अलग-अलग कॉलम चुन सकते हैं।

  • आप डेटा के उप-सेट (जहां खंड) चुन सकते हैं।

  • आप डेटा का ऑर्डरिंग (क्लॉज द्वारा ऑर्डर) चुन सकते हैं।

  • उन गड़बड़ डेटाबेस डीबगिंग ऑपरेशंस के लिए ग्रेट बैकअप उपयोगिता जिसके लिए डेटा मैनिपुलेशन की आवश्यकता होती है। प्रयोग करते समय डेटा खोना न करें। फ्लाई पर डेटा कुशलतापूर्वक प्रयोग करें!


ऑब्जेक्ट एक्सप्लोरर में एसएसएमएस में, डेटाबेस पर राइट-क्लिक करें, राइट-क्लिक करें और "टास्क" चुनें और फिर "स्क्रिप्ट जेनरेट करें"।

यह आपको एकल या सभी तालिकाओं के लिए स्क्रिप्ट उत्पन्न करने की अनुमति देगा, और विकल्पों में से एक "स्क्रिप्ट डेटा" है। यदि आप इसे सत्य पर सेट करते हैं, तो विज़ार्ड आपके डेटा के लिए INSERT INTO () कथन के साथ एक स्क्रिप्ट उत्पन्न करेगा।

यदि 2008 आर 2 या 2012 का उपयोग करना है तो इसे कुछ और कहा जाता है, इस के नीचे स्क्रीनशॉट देखें

2008 आर 2 या बाद में उदाहरण 2012

"स्क्रिप्ट टू डेटा के प्रकार" का चयन करें जो "केवल डेटा", "स्कीमा और डेटा" या "स्कीमा केवल" हो सकता है - डिफ़ॉल्ट)।

और फिर कोडप्लेक्स (स्रोत समेत) पर एक "एसएसएमएस एडिन" पैकेज है जो काफी कार्यक्षमता और कुछ और (जैसे त्वरित खोज इत्यादि) का वादा करता है।


कमांड लाइन संस्करण की तलाश करने वालों के लिए, माइक्रोसॉफ्ट ने ऐसा करने के लिए 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

यदि आप इसका उपयोग SQLServer 2008R2 का उपयोग करते हैं तो आपको स्क्रिप्ट फ़ील्ड में डेटा के प्रकार सेट करने की आवश्यकता है।


यहां स्रोत तालिका को पुनरारंभ करने के लिए कर्सर का उपयोग करके डेटा माइग्रेशन स्क्रिप्ट बनाने का एक उदाहरण दिया गया है।

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'






data-migration