SQL सर्वर 2008 R2 में, उपयोगकर्ता Tasks
और Generate Scripts
का चयन करके डेटाबेस पर राइट क्लिक करके डेटा के साथ एक तालिका को स्क्रिप्ट कर सकता है। एक विज़ार्ड पॉप अप करेगा, उपयोगकर्ताओं को यह पूछेगा कि वे क्या चाहते हैं (एकाधिक टेबल, एक टेबल, आदि) कुछ उन्नत विकल्पों के साथ (जो उपयोगकर्ता को टेबल स्कीमा और डेटा दोनों प्राप्त करने की अनुमति देता है); प्रश्नों के लिए, see this useful post of what's being done ("द हैंडी" के तहत)।कोड से डेटा के साथ स्क्रिप्ट तालिका
दुर्भाग्यवश, SQL सर्वर में इन स्क्रिप्ट को उत्पन्न करने के लिए कोई स्क्रिप्ट नहीं है, और अवसर पर हमें उन सभी डेटा के साथ कुछ तालिकाओं को स्क्रिप्ट करना होगा। मैन्युअल रूप से इसे हर बार करने के बजाए, मैंने सोचा कि सी # एप्लिकेशन इन प्रक्रियाओं को टेस्ट टेबल के लिए कॉल करना आसान होगा और सभी डेटा के साथ तालिका के लिए एक स्क्रिप्ट उत्पन्न करेगा, इसे स्थानीय फ़ाइल के रूप में सहेज देगा।
जब मैं SqlConnection
का उपयोग करता हूं, तो मुझे इस प्रकार के कार्य को करने का विकल्प नहीं देखा जाता है (हालांकि यह किसी और चीज़ के साथ हो सकता है)। यह जादूगर कैसे सुलभ है?
अद्यतन: प्रारंभिक उत्तर के बाद, मुझे लगता है कि यह संभव नहीं था, इसलिए मैंने टीएसक्यूएल से अधिक परिचित लोगों के लिए एक दिलचस्प समाधान तैयार किया।
CREATE PROCEDURE usp_ScriptTableAndData
AS
BEGIN
CREATE TABLE ScriptTemp(
Value VARCHAR(8000)
)
INSERT INTO ScriptTemp
SELECT '/* Build the Reference Table */'
INSERT INTO ScriptTemp
SELECT 'USE [DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Table](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Reference] [varchar](50) NULL,
[TableDate] [datetime] NOT NULL,
[Display] [bit] NULL
)
SET ANSI_PADDING OFF
GO
INSERT INTO ScriptTemp
SELECT '/* Insert the Table Values */'
INSERT INTO ScriptTemp
SELECT 'INSERT INTO Table VALUES(' + CAST(ID AS VARCHAR(3)) +
',' + '''' + LTRIM(RTRIM(ISNULL(Reference,'NULL'))) + '''' +
',' + '''' + CONVERT(VARCHAR(25),TableDate,120) + '''' +
',' + ISNULL(CAST(Display AS VARCHAR(4)),'NULL') + ')'
FROM dbo.Table
EXECUTE xp_cmdshell 'BCP "SELECT * FROM DB.dbo.ScriptTemp" queryout "\\FileSharePath\Script.sql" -T -c -SSERVER'
DROP TABLE ScriptTemp
END
इस तालिका और डेटा (मुझे लगता है कि Bill Fellows created एक ऐसी ही स्क्रिप्ट से विचार आया) के साथ एक स्क्रिप्ट बनाता है: मैं नीचे एक करने के लिए इसी तरह की एक संग्रहीत प्रक्रिया बनाया। वैसे भी, यह समाधान भी काम करता है, और टीएसक्यूएल से अधिक परिचित लोगों के लिए काफी आसान है। उत्तर देने वाले सभी को धन्यवाद।
मैंने आपका शीर्षक संपादित किया है। कृपया देखें, "[प्रश्नों में उनके शीर्षक में" टैग "शामिल होना चाहिए?] (Http://meta.stackexchange.com/questions/19190/)", जहां आम सहमति है "नहीं, उन्हें नहीं करना चाहिए"। –