2011-11-16 95 views

回答

16

1)打開SQL Server Management Studio中 2)在對象資源管理器 3)選擇您的數據庫右鍵單擊>任務>生成腳本

enter image description here

4)只選擇存儲過程來編寫而成

enter image description here

5)按​​照通過步驟嚮導;在下一個屏幕上,挑選選項Single file per object,並定義一個目錄,把那些文件:

enter image description here

有了這些選項,你在每個存儲過程一個文件,存儲在您選擇的目錄。

+0

嘿,我想每個SP 130個單獨的文件:(它只給我一個文件 – Neo

+0

@ashuthinks:無論你喜歡他們是什麼!通過嚮導的步驟 - 它會問你是否想要一個文件的所有存儲特效,或每個存儲過程一個文件,它會問你在哪裏存儲這些... –

+1

@ashuthinks:看我的第三個截圖 - 是你在找什麼??? **每個對象一個文件** ?? ?? –

3

您可以在management studio中執行此操作 - 右鍵單擊​​所需的數據庫並選擇任務 - >生成腳本 - >通過嚮導。然後,您可以指定只存儲過程等

您也可以使用這樣的腳本:

SET NOCOUNT ON 
DECLARE @Test TABLE (Id INT IDENTITY(1,1), Code VARCHAR(MAX)) 

INSERT INTO @Test (Code) 
SELECT 'IF object_ID(N''[' + schema_name(schema_id) + '].[' + Name + ']'') IS NOT NULL 
      DROP PROCEDURE ['+ schema_name(schema_id) +' ].[' + Name + ']' + CHAR(13) + CHAR(10) + 'GO' + CHAR(13) +CHAR(10) + 
      OBJECT_DEFINITION(OBJECT_ID) + CHAR(13) +CHAR(10) + 'GO' + CHAR(13) + CHAR(10) 
      FROM sys.procedures 
      WHERE is_ms_shipped = 0 

DECLARE @lnCurrent INT, @lnMax INT 
DECLARE @LongName VARCHAR(MAX) 

SELECT @lnMax = MAX(Id) FROM @Test 
SET @lnCurrent = 1 
WHILE @lnCurrent <= @lnMax 
     BEGIN 
      SELECT @LongName = Code FROM @Test WHERE Id = @lnCurrent 
      WHILE @LongName <> '' 
       BEGIN 
        PRINT LEFT(@LongName,8000) 
        SET @LongName = SUBSTRING(@LongName, 8001, LEN(@LongName)) 
       END 
      SET @lnCurrent = @lnCurrent + 1 
     END 

您也可以按住Shift並單擊以選中所有的存儲過程,你就可以用鼠標右鍵單擊和腳本他們到一個文件。

相關問題