如何在其他架构下创建SQL表?


137

这是来自SQL Server 2008的ssms

创建表时,它在dbo下创建。

我想在不同的架构下创建它,但是当我使用“新建表”对话框时,我再也找不到在哪里指定它了。

Answers:


242
  1. 右键单击表节点,然后选择 New Table...
  2. 打开表设计器后,打开属性窗口(视图->属性窗口)。
  3. 您可以通过在属性窗口中选择一个架构来更改将在其中创建表的架构。

您将如何以编程方式做到这一点。即创建表SUSER_SNAME()。[MyTableName],但实际上可行。另外,这是一种存储临时全局变量以允许不同应用程序相互通信的公平方法吗?
Adamantish 2014年

好的,谢谢,但我的意思是根据运行该用户的用户将模式名称作为变量。用一点动态SQL做到了这一点,但后来找到了一种更好的方式将这些var放在用户计算机上的表中。
Adamantish 2014年

1
@adrianbanks先生,请您指出正确的方向,先生!
Shaun F

谢谢@adrianbanks。有一阵子没做,正要写一个创建脚本!
Karl Gjertsen '16

50

尝试跑步 CREATE TABLE [schemaname].[tableName]; GO;

假定架构名称存在于数据库中。CREATE SCHEMA [schemaname]如果还需要创建架构,请使用。

编辑:更新为注意SQL Server 11.03,要求这是批处理中的唯一语句。


1
是的,我意识到我可以做到,我只是想知道对话框版本是否可以选择执行此操作。
马特

我尝试了同样的方法,但无法正常工作,我做错了吗?或者它只是在2012年MSSQL工作?
Pankaj Parkar,2015年

7
@PankajParkar:如果模式不存在,则无法使用。首先使用架构,create schema [schema_Name]然后使用上述查询。
Sangram Nandkhile '16

14

                           在SQL Server 2008中创建数据库架构
。1.导航到“安全性”>“架构”
。2.右键单击“架构”,然后选择“新建架构”
。3.在“常规”选项卡中完成新架构的详细信息。相似,架构名称为“ MySchema”,架构所有者为“ Admin”。
4.根据需要将用户添加到架构并设置其权限:
5.添加任何扩展属性(通过“扩展属性”选项卡)
6.单击“确定”。
                          在新架构“ MySchema”中添加表
1.在“对象资源管理器”中,右键单击表名称并选择“设计”:
2.在SQL Server Management Studio中更改表的数据库架构
。3.在“设计”视图中,按F4键。显示“属性”窗口。
4.在“属性”窗口中,将架构更改为所需的架构:
5.右键单击选项卡并选择“关闭”,以关闭“
设计视图”:6.关闭设计视图
。7.提示保存时,单击“确定”。8
.您的表现在已转移到“ MySchema”架构。

刷新对象浏览器视图以确认更改
完成


先前的数据库架构创建过程非常有用。谢谢。
mggSoft


5

如果数据库中不存在模式,Shaun F的答案将不起作用。如果有人在寻找创建模式的方法,则只需执行以下脚本即可创建模式。

create schema [schema_name]
CREATE TABLE [schema_name].[table_name](
 ...
) ON [PRIMARY]

在添加新表时,进入表设计模式并按F4以打开属性Window,然后从下拉列表中选择模式。默认值为dbo

您还可以使用“属性”窗口更改当前表的架构。

参考:

在此处输入图片说明


在SQL Server 11.0.3+中,这将引发错误,CREATE SCHEMA必须是批处理中的唯一操作。 CREATE SCHEMA setup; GO
hajikelist,2016年

3

当我使用SSMS 2008创建表时,我看到3个窗格:

  • 专栏设计师
  • 列属性
  • 表属性

在表属性窗格中,有一个字段:Schema允许您选择模式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.