Esecuzione file.sql da file.sql

venerdì 10 ottobre 2008 - 15.09

bipbipatomino Profilo | Newbie

Sono nuovo del Forum e vorrei salutare tutti i partecipanti ponendo anche un quesito.
In un progetto Visual Studio per SQL Server (2008) ho una serie di file .sql in cui si creano tabelle, vincoli e stored procedure.

Ora vorrei scrivere un file BigBang.sql che possa richiamare nel giusto ordine tali file, ma cercando sul Web non sono riuscito a trovare indicazioni utili. Si può fare? Se sì come?

Ringrazio anticipatamente per ogni suggerimento.

DR

lbenaglia Profilo | Guru

>Sono nuovo del Forum e vorrei salutare tutti i partecipanti ponendo
>anche un quesito.

Ciao Damiano,

Benvenuto sui forum di DNH

>Ora vorrei scrivere un file BigBang.sql che possa richiamare
>nel giusto ordine tali file, ma cercando sul Web non sono riuscito
>a trovare indicazioni utili. Si può fare? Se sì come?
Un file .sql contiene comandi SQL ma non esiste un comando SQL che possa richiamare altri files.
Se prevedi di eseguire tali files sulla stessa macchina che ospita l'istanza SQL Server, potresti scrivere un batch (.bat o .cmd) che tramite l'utility command line sqlcmd.exe vada a richiamare nella giusta sequenza i files sql.
http://msdn.microsoft.com/en-us/library/ms162773.aspx

>Ringrazio anticipatamente per ogni suggerimento.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

bipbipatomino Profilo | Newbie

In effetti era la soluzione alternativa che avevo trovato e che speravo di evitare

A ogni modo, per l'utilità del forum, riporto la soluzione già sperimentata con successo su SQL Server Express.

Una volta assicurato il permesso alle connessioni remote (tramite SQL Server Management Studio Express dato che su Visual Studio non sono riuscito a capire dove si deve vedere...) onde evitare errori tipo
"HResult 0x2,
[rimosso]
Named Pipes Provider: Could not open a connection to SQL Server [2].
[rimosso]
this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections..
Sqlcmd: Error: Microsoft SQL Native Client : Login timeout expired."


ho creato il file BigBang.bat con la riga avente modello:

sqlcmd.exe -S "NOMEPC\SQLEXPRESS" -d "F:\...\HOGWEB\App_Data\MIODATABASE.MDF" -E -i "F:\...\Create Scripts\Script.sql"

Poi grazie al cmd.exe (prompt dei comandi) ho lanciato in esecuzione BigBang.bat

Segnalo di aver trovato un'ulteriore difficoltà dovuta all'Unicode che pone caratteri non interpretabili da sqlcmd.
Infatti, avevo rinominato BigBang.sql creato in Visual Studio come BigBang.bat e sqlcmd ha riportato dei problemi su tre caratteri sconosciuti.

Ho quindi aperto in modalità binaria il file di testo BigBang.bat e ho rimosso quei primi tre caratteri che sqlcmd non interpretava "trasformandolo" in ASCII puro ... e poi ha funzionato.

Ciao.
DR
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5