2011-11-16 1 views

risposta

16

1) Aprire SQL Server Management Studio 2) Selezionare il database in Esplora oggetti 3) Fare clic destro> le attività> Genera script

enter image description here

4) Selezionare solo stored procedure per inserire nello script fuori

enter image description here

5) Seguendo la procedura guidata attraverso i passi; Nella schermata successiva, scegliere l'opzione Single file per object e definire una directory dove mettere i file:

enter image description here

Con queste opzioni, si ottiene un file per ogni stored procedure, memorizzato nella directory di vostra scelta.

+0

Ehi voglio 130 file separati per ogni SP :(mi sta dando solo un file – Neo

+0

@ashuthinks: ovunque ti piacciano! Passa attraverso il wizard - ti chiederà se vuoi un file per tutti i proc memorizzati , o un file per proc memorizzato, e ti chiederà dove archiviare quelli ... –

+1

@ashuthinks: guarda il mio terzo screenshot - è quello che stai cercando ??? ** Un file per oggetto ** ?? –

3

È possibile farlo nello studio di gestione: fare clic con il pulsante destro del mouse sul database desiderato e selezionare attività -> Genera script -> passare attraverso la procedura guidata. È possibile specificare solo le stored procedure, ecc

è anche possibile utilizzare uno script come questo:

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 

È possibile anche Maiusc + clic per selezionare tutte le stored procedure e si può quindi fare clic destro e sceneggiatura li a un file.

-2

È possibile utilizzare DB pro (strumenti di Visual Studio per database) anche per questo. Per ulteriori informazioni controllare questo - https://www.mssqltips.com/sqlservertip/2971/creating-a-visual-studio-database-project-for-an-existing-sql-server-database/

Modifica: aggiornato il collegamento non aggiornato.

+0

Sfortunatamente, il link è ora morto. Le risposte di solo collegamento sono scoraggiate esattamente per questo motivo. Se la risposta è stata modificata per includere alcuni contenuti, potrebbe essere salvata. –