我尝试了以下SQL代码:
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);
这会导致错误:
Create Schema必须是查询批处理中的第一个语句
谁能帮我?
你无法直接逃脱。但是,如果您愿意使用嵌套的EXEC
,请尝试以下操作。
Declare @Schema varchar(40);
Declare @dbname varchar(40);
Declare @CreateSchema nvarchar(Max);
SELECT @dbname = 'abc';
SELECT @Schema = 'sdssd';
SELECT @CreateSchema = N'USE '+@dbname+'; EXEC(''CREATE SCHEMA '+ @Schema +' AUTHORIZATION [dbo]'')'
EXEC(@CreateSchema);
仅供参考 - 您错过了在样品中声明变量
@Schema
。