>Salve ragazzi e buona domenica.
ciao
>Cioè io vorrei avere una TextBox in cui inserisco il nome del
>database e questo testo venga sostituito a Pippo sullo script.
>E' possibile farlo?
certo, dovrai lavorare con le stringhe.
Al posto dei punti in cui vuoi parametrizzare, metti dei segna posto, tipo (prendo una parte del tuo script):
"CREATE DATABASE <NOMEDATABASE> ..."
A questo punto, siccome la stringa sarà o "schiantata nel codice" (te lo sconsiglio) o salvata su un file di config (o un tuo semplice file .sql o di testo), dovrai leggerla in una variabile e fare una bella replace:
TuaVarStringa.Replace("<NOMEDATABASE>", "Pippo")
Quella stringa poi sarà il comando da lanciare con ADO.Net.
Se invece vuoi fare una stored procedure, il discorso cambia. Innanzitutto non puoi usare i GO, e poi dovrai definire dei parametri con la sintassi @nomeparam come segue:
CREATE PROCEDURE nomeschema.nomeprocedura
@nomeDB varchar(50)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sqlCreate nvarchar(MAX) = 'CREATE DATABASE ' + @nomeDB + ' ...';
EXEC sp_executesql @sqlCreate;
END;
decidi tu se fare una sp che poi lancia sql dinamico o se fare un sql stringa salvato in un file per poi eseguirlo direttamente da ado.net.
La via delle sp ti dà un po' di modularità, ma siccome è una creazione di un db, forse opterei per la soluzione ado.net parametrizzato da file e stringa
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi