如何在SQL Server 2008中添加新模式?

70

如何向数据库添加新架构?我正在创建一个新表,并想从属性列表中选择自己的架构,但我不知道如何创建它。我正在使用SQL Server Management 2008。

6个回答

92
使用CREATE SCHEMA语法或在SSMS中通过以下路径进行操作:Databases -> YourDatabaseName -> Security -> Schemas。右键单击Schemas文件夹并选择“New Schema...”。

53

这是一个小技巧,可以轻松检查模式是否已存在,并在自己的批处理中创建它,以避免尝试在不是唯一命令的批处理中创建模式时出现错误信息。

IF NOT EXISTS (SELECT schema_name 
    FROM information_schema.schemata 
    WHERE schema_name = 'newSchemaName' )
BEGIN
    EXEC sp_executesql N'CREATE SCHEMA NewSchemaName;';
END

11

我使用类似这样的东西:

if schema_id('newSchema') is null
    exec('create schema newSchema');

优点是如果您在长的 SQL 脚本中有这段代码,您始终可以将它与其他代码一起执行,并且它很短。


8

给现有表添加模式的最佳方法:右键单击特定的表 -> 设计 -> 在管理工作室的右侧查看属性窗口,选择模式并单击它,查看下拉列表并选择您的模式。更改模式后保存它。然后会看到它将更改您的模式。


7
您可以尝试这样做:
use database
go

declare @temp as int
select @temp = count(1) from sys.schemas where name = 'newSchema'

if @temp = 0 
begin
    exec ('create SCHEMA temporal')
    print 'The schema newSchema was created in database'
end 
else 
print 'The schema newSchema already exists in database'
go

1
我学会的一种快速方法是这样的:如果存在(select name from sys.schemas where name = 'newschema') - Mark
好的,不用管了,你可以单独运行这个检查,但是只有在它自己的批处理中才能创建模式。 - Mark

1
在SQL Server 2016中的SSMS中,展开“DATABASNAME”>展开“SECURITY”>展开“SCHEMA”;右键单击弹出菜单中的“SCHEMAS”,然后左键单击“NEW SCHEMAS...”在打开的窗口中添加名称并添加所有者,例如dbo,然后单击“OK”按钮。

这也适用于 Microsoft SQL Server Management Studio (SSMS) 2012 版本。 - Arthur Zennig

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接