Spostare le procedure memorizzate da un database ad un altro in SQL Server

Sto utilizzando SQL Server 2008 e vorrei copiare le stored procedure da un database a un altro. Come?

  • Qual è il modo più semplice per non pubblicare app aspnet?
  • Termine di connessione di SQL Server 2012 scaduto
  • Imansible ripristinare il backup di SQL 2008 - errore che il database è in uso ma non lo è
  • SQL Server - Forza DB nella memory?
  • Autenticazione Kerberos a un SQL Server alias
  • SQL Server Developer Edition rispetto a SQL Server Standard
  • 7 Solutions collect form web for “Spostare le procedure memorizzate da un database ad un altro in SQL Server”

    Fare clic con il button destro del mouse sulla SP sotto il DB e fare clic su Procedura archiviata script come> CREA A> File, creerà un file di script SQL, quindi eseguire lo script nell'altro database.

    Basta utilizzare lo Studio di gestione per generare uno script per le stored procedure, salvare lo script in un file e quindi eseguirlo sull'altro SQL Server.

    Dalla memory si fa clic destro sul database e in Tutte le attività è generare script o qualcosa del genere. Questo produrrà il Transact-SQL per creare tutto ciò che seleziona.

    JR

    Ecco una query (imposta l'output in text) per restituire le procedure memorizzate:

    SELECT ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE='PROCEDURE' 

    Le risposte di cui sopra sono tutte buone e functionranno. Il problema è (nel mio mondo, comunque): Dove sono i tuoi germogli?

    Nel mio caso abbiamo un kit di sprock nell'app db (logica aziendale, ecc.) E un altro insieme di schemi di gestione del sistema nel master.

    Il kicker per me è wherer spostare (e mantenere in sincronia) i germogli in master ….

    È ansible copiare tutto il database, incluse le stored procedure, forse è necessario:

    Nel studio SQL Server Management Studio -> Fare clic destro nella base dati di origine, andare al menu "Attività" e select "Copia database".

    Ciò creerà una copia completa della sorgente includendo tabelle, dati e precedenti memorizzati.

    @Ash Machine ha una buona idea, ma utilizza la query errata, che limita il risultato restituito a nvarchar (4000).

    Utilizza invece

     Select definition from sys.sql_modules where object_id = object_id('<procname>') 

    e si ottiene la definizione completa non concordata.

    Nella maggior parte dei casi pratici, questo funziona in GUI come SSMS quando si usa l'output al text e imposta i valori massimi pro colonna a 8192. Se le righe sono più ampie di 8192 questo non riesce. Ma si noti che si tratta di una limitazione dello strumento di query e non della query. Questa limitazione lo ha fatto anche in SQLServer 2012.

    Utilizzando ADO.NET forse tramite PowerShell come in SQLPSX sqlise è ansible get la definizione completa.

    Se si desidera solo archiviare i backup della definizione di procedura in una sola tabella dello stesso database, funziona pure

    Ci sono opzioni in SSMS per farlo generare autorizzazioni per gli utenti pure – che è utile.

    Strumenti> Opzioni> scripting

    È anche ansible eseguire script multipli facendo clic su "stored procedure" nel riquadro Esplora oggetti e quindi selezionando più procedure nella window Oggetti object Explorer. Fare clic con il button destro del mouse sulle procedure selezionate e si è pronti per andare.

    Preferisco il confronto SQL di redgate.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.