Sto cercando di creare una stored procedure che crei un database ed alcune tabelle nel nuovo database creato. Questa procedura è memorizzata in un database A, la chiamo passando come parametro il nome del nuovo database e la creazione avviene regolarmente. Il problema è nel creare le nuove tabelle, perchè il sistema le crea nel database A, ovvero quello dove è salvata la stored procedure, nonostante dentro la procedura, dopo la creazione del nuovo database, abbia inserito un'istruzione USE Nuovodb.
Come posso fare per fargli creare le tabelle nel nuovo database?
Il codice della procedura è il seguente:
CREATE PROCEDURE [dbo].[wc_CreateNewDb]
@Dbname nvarchar(128)
AS
BEGIN
/* creazione database*/
if @Dbname=null
begin
RAISERROR ('Nome database non specificato',16,1)
return -1
end
else
exec('CREATE DATABASE ' + @Dbname)
/* Creazione tabella Users */
exec ('USE ' + @Dbname)
CREATE TABLE dbo.Users
(
IdUser int NOT NULL IDENTITY (1, 1),
Nome varchar(50) NOT NULL,
Password varchar(50) NOT NULL,
Admin smallint NOT NULL
) ON [PRIMARY]
END