简体   繁体   English

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

[英]How to create a schema inside a database (database and schema should be dynamic)

I tried the following SQL code: 我尝试了以下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);  

This is results in an error: 这将导致错误:

Create Schema must be the first statement in a query batch 创建模式必须是查询批处理中的第一条语句

Can anyone help me? 谁能帮我?

You cannot get away with this directly. 您不能直接摆脱它。 Though, if you are open to use nested EXEC , try following. 但是,如果您愿意使用嵌套的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);

FYI - you missed declaring a variable @Schema in your sample. 仅供参考-您错过了在示例中声明变量@Schema

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM