尝试使这项工作:
CREATE PROCEDURE createDbandSchema AS
BEGIN
CREATE DATABASE MYDB
USE MYDB
CREATE SCHEMA MYSCHEMA
END
我收到了错误
过程,函数或中不允许使用USE数据库语句 触发。
答案 0 :(得分:2)
create schema
语句必须是批处理中的第一个,因此它需要嵌套范围。外部作用域将更改为新数据库。内部作用域作为批处理的第一个语句运行create schema
:
create procedure createDbandSchema(@db sysname, @schema sysname)
as begin
declare @sql nvarchar(max) = N'CREATE DATABASE ' + quotename(@db);
exec (@sql)
set @sql = N'USE ' + quotename(@db) + '; exec (N''CREATE SCHEMA ' +
quotename(@schema) + N''')';
exec (@sql)
end
答案 1 :(得分:0)
使用CREATE SCHEMA语法,或者在SSMS中深入了解数据库 - > YourDatabaseName - >安全 - >架构。右键单击Schemas文件夹,然后选择" New Schema ..."
https://msdn.microsoft.com/en-us/library/dd207005.aspx
http://www.c-sharpcorner.com/UploadFile/63f5c2/schema-in-sql-server-2012/