यदि यह एक बार (या शायद ही कभी) करने की बात है, तो आप यहां बताए अनुसार SSMS विज़ार्ड से डेटा को स्क्रिप्टिंग करने का प्रयास कर सकते हैं:
http:/ /sqlblog.com/blogs/eric_johnson/archive/2010/03/08/script-data-in-sql-server-2008.aspx
या, यदि आपको इसे बार-बार करने की आवश्यकता है और इसे स्वचालित करना चाहते हैं, तो आप SQL# SQLCLR लाइब्रेरी (जो मैंने लिखी थी और जबकि इसमें से अधिकांश मुफ्त है, आपको यहां जिस फ़ंक्शन की आवश्यकता है वह नहीं है)। ऐसा करने का कार्य है DB_DumpData और यह INSERT
. भी उत्पन्न करता है बयान।
लेकिन फिर से, यदि यह एक बार या कम कार्य है, तो प्रबंधन स्टूडियो में निर्मित डेटा निर्यात विज़ार्ड का प्रयास करें। इससे आपको SQL स्क्रिप्ट बनाने की अनुमति मिलनी चाहिए जिसे आप प्रोडक्शन में चला सकते हैं। मैंने अभी-अभी एक VARBINARY(MAX)
वाली टेबल पर इसका परीक्षण किया है 3,365,964 बाइट डेटा वाली फ़ील्ड और जेनरेट स्क्रिप्ट विज़ार्ड ने एक INSERT
जेनरेट किया उस एक मान के लिए 6.73 मिलियन वर्णों की संपूर्ण हेक्स स्ट्रिंग के साथ कथन।
अपडेट करें:
ऐसा करने का एक और त्वरित और आसान तरीका जो आपको संपूर्ण INSERT कथन को SQL स्क्रिप्ट में कॉपी/पेस्ट करने की अनुमति देगा और BCP या SSMS निर्यात विज़ार्ड से परेशान नहीं होना पड़ेगा, केवल मान को <में परिवर्तित करना है। कोड>एक्सएमएल . सबसे पहले आप कन्वर्ट
करेंगे शब्दावली
करने के लिए VARCHAR(MAX)
"1" की वैकल्पिक शैली का उपयोग करके जो आपको "0x" से शुरू होने वाली एक हेक्स स्ट्रिंग देता है। एक बार जब आपके पास बाइनरी डेटा की हेक्स स्ट्रिंग हो जाती है तो आप उसे INSERT
में जोड़ सकते हैं स्टेटमेंट और वह पूरी बात, जब XML
. में कनवर्ट किया जाता है , में संपूर्ण VARBINARY
हो सकता है खेत। निम्नलिखित उदाहरण देखें:
DECLARE @Binary VARBINARY(MAX) = CONVERT(VARBINARY(MAX),
REPLICATE(
CONVERT(NVARCHAR(MAX), 'test string'),
100000)
)
SELECT 'INSERT INTO dbo.TableName (ColumnName) VALUES ('+
CONVERT(VARCHAR(MAX), @Binary, 1) + ')' AS [Insert]
FOR XML RAW;