将DDL加载到架构中

时间:2011-06-22 13:49:32

标签: sql-server

我有一个生成DDL脚本的工具

create table ATTRIBUTE_VALUE (
    id int identity not null,
    version int null,
);

create table BADGE (
    id int identity not null,
    version int null,
    cms_ci_ref varchar(255) not null unique,
    primary key (id)
);

/* more tables */

请注意,表名不以模式名称为前缀 - 我无法控制它。我想在myschema中创建这些表,并希望在加载此脚本之前可以执行一些命令,将当前架构设置为myschema,这样我就可以在不修改的情况下使用DDL。

像......那样的东西。

use myschema;
load ddl;

SQL Server是否提供这样的命令?

1 个答案:

答案 0 :(得分:3)

是的,if using a SQL Server login.

ALTER USER ... WITH DEFAULT_SCHEMA = myschema

我的链接注释:

  

无法为映射到Windows组的用户指定DEFAULT_SCHEMA

     

如果用户是sysadmin固定服务器角色的成员,则忽略DEFAULT_SCHEMA的值。 sysadmin固定服务器角色的所有成员都具有dbo的默认架构。