2013-01-19 16 views
7

का उपयोग कर ट्रिगर्स के लिए स्क्रिप्ट जेनरेट करें मेरे पास SQL ​​Server 2008 R2 है। मेरे पास डेटाबेस में लगभग 150 टेबल हैं और प्रत्येक तालिका के लिए मैंने हाल ही में ट्रिगर्स बनाए हैं। यह मेरे स्थानीय पर्यावरण में ठीक काम कर रहा है।केवल स्क्रिप्ट विज़ार्ड

अब मैं उन्हें अपने लाइव वातावरण पर तैनात करना चाहता हूं। सवाल यह है कि मैं केवल ट्रिगर्स को तैनात करना चाहता हूं। मैंने Generate Script wizard की कोशिश की लेकिन यह ट्रिगर्स के साथ तालिका स्कीमा के साथ स्क्रिप्ट बना रहा है, केवल ट्रिगर्स नहीं।

क्या सभी ट्रिगर्स ड्रॉप और टाइप स्क्रिप्ट बनाने के लिए वैसे भी है?

+1

उन्नत विकल्पों का उपयोग करने का प्रयास करें। यह उत्तर देखें: http://stackoverflow.com/a/13200622/139388 –

उत्तर

8

विज़ार्ड भूल जाओ। मुझे लगता है कि आपको कोड के साथ अपने हाथ गंदे करना होगा। नीचे स्क्रिप्ट सभी ट्रिगर कोड प्रिंट करता है और इसे टेबल में संग्रहीत करता है। बस स्क्रिप्ट के प्रिंट आउटपुट की प्रतिलिपि बनाएँ या इसे #triggerFullText से प्राप्त करें।

USE YourDatabaseName 
GO 
SET NOCOUNT ON; 

CREATE TABLE #triggerFullText ([TriggerName] VARCHAR(500), [Text] VARCHAR(MAX)) 
CREATE TABLE #triggerLines ([Text] VARCHAR(MAX)) 

DECLARE @triggerName VARCHAR(500) 
DECLARE @fullText VARCHAR(MAX) 

SELECT @triggerName = MIN(name) 
FROM sys.triggers 

WHILE @triggerName IS NOT NULL 
BEGIN 
    INSERT INTO #triggerLines 
    EXEC sp_helptext @triggerName 

    --sp_helptext gives us one row per trigger line 
    --here we join lines into one variable 
    SELECT @fullText = ISNULL(@fullText, '') + CHAR(10) + [TEXT] 
    FROM #triggerLines 

    --adding "GO" for ease of copy paste execution 
    SET @fullText = @fullText + CHAR(10) + 'GO' + CHAR(10) 

    PRINT @fullText 

    --accumulating result for future manipulations 
    INSERT INTO #triggerFullText([TriggerName], [Text]) 
    VALUES(@triggerName, @fullText) 

    --iterating over next trigger 
    SELECT @triggerName = MIN(name) 
    FROM sys.triggers 
    WHERE name > @triggerName 

    SET @fullText = NULL 

    TRUNCATE TABLE #triggerLines 
END 

DROP TABLE #triggerFullText 
DROP TABLE #triggerLines 
+1

धन्यवाद। हालांकि मैंने अपनी समस्या को अलग-अलग तरीके से हल किया था, लेकिन आपका समाधान उपयोग करना बेहतर है। बहुत बहुत धन्यवाद :) – Dev

संबंधित मुद्दे