如何在数据库中创建模式(数据库和模式应该是动态的)

问题描述 投票:0回答:1

我尝试了以下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必须是查询批处理中的第一个语句

谁能帮我?

sql sql-server
1个回答
2
投票

你无法直接逃脱。但是,如果您愿意使用嵌套的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

© www.soinside.com 2019 - 2024. All rights reserved.