2017-12-20 3 views
0

habe ich versucht, den folgenden SQL-Code:Wie ein Schema in einer Datenbank erstellen (Datenbank und das Schema sollten dynamisch sein)

DECLARE @dbname VARCHAR(40); 
DECLARE @CreateSchema NVARCHAR(MAX); 

SELECT @dbname = 'abc'; 
SELECT @Schema = 'sdssd'; 

SELECT @CreateSchema = N'USE ' + @dbname + '; CREATE SCHEMA ' + @Schema + ' AUTHORIZATION [dbo]' 

EXEC(@CreateSchema); 

Dies führt zu einem Fehler ist:

Create Schema must be the first statement in a query batch

kann jemand helfen mich?

Antwort

2

Sie können damit nicht direkt davonkommen. Wenn Sie jedoch offen für die Verwendung verschachtelter EXEC sind, versuchen Sie Folgendes.

Declare @Schema varchar(40); 
Declare @dbname varchar(40); 
Declare @CreateSchema nvarchar(Max); 
SELECT @dbname = 'abc'; 
SELECT @Schema = 'sdssd'; 

SELECT @CreateSchema = N'USE '[email protected]+'; EXEC(''CREATE SCHEMA '+ @Schema +' AUTHORIZATION [dbo]'')' 
EXEC(@CreateSchema); 

FYI - you missed declaring a variable @Schema in your sample.

Verwandte Themen