欢迎来到天天文库
浏览记录
ID:34725920
大小:89.72 KB
页数:19页
时间:2019-03-10
《sqlserver2008之createtable》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、CREATETABLE[database_name.[owner].
2、owner.]table_name({
3、column_nameAScomputed_column_expression
4、::=[CONSTRAINTconstraint_name]}
5、[{PRIMARYKEY
6、UNIQUE}[,...n])[ON{filegroup
7、DEFAULT}][TEXTIMAGE_ON{filegroup
8、DEFAULT}]9、ion>::={column_namedata_type}[COLLATE][[DEFAULTconstant_expression]10、[IDENTITY[(seed,increment)[NOTFORREPLICATION]]]][ROWGUIDCOL][][...n]::=[CONSTRAINTconstraint_name]{[NULL11、NOTNULL]12、[{PRIMARYKEY13、UNIQUE}[CLUSTE14、RED15、NONCLUSTERED][WITHFILLFACTOR=fillfactor][ON{filegroup16、DEFAULT}]]]17、[[FOREIGNKEY]REFERENCESref_table[(ref_column)][ONDELETE{CASCADE18、NOACTION}][ONUPDATE{CASCADE19、NOACTION}][NOTFORREPLICATION]]20、CHECK[NOTFORREPLICATION](logical_expression)}::=[CON21、STRAINTconstraint_name]{[{PRIMARYKEY22、UNIQUE}[CLUSTERED23、NONCLUSTERED]{(column[ASC24、DESC][,...n])}[WITHFILLFACTOR=fillfactor][ON{filegroup25、DEFAULT}]]26、FOREIGNKEY[(column[,...n])]REFERENCESref_table[(ref_column[,...n])][ONDELETE{CASCADE27、NOACTION}][ONUPDATE{CASCADE28、NOA29、CTION}][NOTFORREPLICATION]30、CHECK[NOTFORREPLICATION](search_conditions)}参数database_name是要在其中创建表的数据库名称。database_name必须是现有数据库的名称。如果不指定数据库,database_name默认为当前数据库。当前连接的登录必须在database_name所指定的数据库中有关联的现有用户ID,而该用户ID必须具有创建表的权限。owner是新表所有者的用户ID名,owner必须是database_name所指定的数据库中31、的现有用户ID,owner默认为与database_name所指定的数据库中的当前连接相关联的用户ID。如果CREATETABLE语句由sysadmin固定服务器角色成员或database_name所指定的数据库中的db_dbowner或db_ddladmin固定数据库角色成员执行,则owner可以指定与当前连接的登录相关联的用户ID以外的其它用户ID。如果与执行CREATETABLE语句的登录相关联的用户ID仅具有创建表的权限,则owner必须指定与当前登录相关联的用户ID。sysadmin固定服务器角色成员或别名为d32、bo用户的登录与用户IDdbo相关联;因此,由这些用户创建的表的默认所有者为dbo。不是由上述两种角色的登录创建的表所有者默认为与该登录相关联的用户ID。table_name是新表的名称。表名必须符合标识符规则。数据库中的owner.table_name组合必须唯一。table_name最多可包含128个字符,但本地临时表的表名(名称前有一个编号符#)最多只能包含116个字符。column_name是表中的列名。列名必须符合标识符规则,并且在表内唯一。以timestamp数据类型创建的列可以省略column_name。如33、果不指定column_name,timestamp列的名称默认为timestamp。computed_column_expression是定义计算列值的表达式。计算列是物理上并不存储在表中的虚拟列。计算列由同一表中的其它列通过表达式计算得到。例如,计算列可以这样定义:costASprice*qty。表达式可以是非计算
9、ion>::={column_namedata_type}[COLLATE][[DEFAULTconstant_expression]
10、[IDENTITY[(seed,increment)[NOTFORREPLICATION]]]][ROWGUIDCOL][][...n]::=[CONSTRAINTconstraint_name]{[NULL
11、NOTNULL]
12、[{PRIMARYKEY
13、UNIQUE}[CLUSTE
14、RED
15、NONCLUSTERED][WITHFILLFACTOR=fillfactor][ON{filegroup
16、DEFAULT}]]]
17、[[FOREIGNKEY]REFERENCESref_table[(ref_column)][ONDELETE{CASCADE
18、NOACTION}][ONUPDATE{CASCADE
19、NOACTION}][NOTFORREPLICATION]]
20、CHECK[NOTFORREPLICATION](logical_expression)}::=[CON
21、STRAINTconstraint_name]{[{PRIMARYKEY
22、UNIQUE}[CLUSTERED
23、NONCLUSTERED]{(column[ASC
24、DESC][,...n])}[WITHFILLFACTOR=fillfactor][ON{filegroup
25、DEFAULT}]]
26、FOREIGNKEY[(column[,...n])]REFERENCESref_table[(ref_column[,...n])][ONDELETE{CASCADE
27、NOACTION}][ONUPDATE{CASCADE
28、NOA
29、CTION}][NOTFORREPLICATION]
30、CHECK[NOTFORREPLICATION](search_conditions)}参数database_name是要在其中创建表的数据库名称。database_name必须是现有数据库的名称。如果不指定数据库,database_name默认为当前数据库。当前连接的登录必须在database_name所指定的数据库中有关联的现有用户ID,而该用户ID必须具有创建表的权限。owner是新表所有者的用户ID名,owner必须是database_name所指定的数据库中
31、的现有用户ID,owner默认为与database_name所指定的数据库中的当前连接相关联的用户ID。如果CREATETABLE语句由sysadmin固定服务器角色成员或database_name所指定的数据库中的db_dbowner或db_ddladmin固定数据库角色成员执行,则owner可以指定与当前连接的登录相关联的用户ID以外的其它用户ID。如果与执行CREATETABLE语句的登录相关联的用户ID仅具有创建表的权限,则owner必须指定与当前登录相关联的用户ID。sysadmin固定服务器角色成员或别名为d
32、bo用户的登录与用户IDdbo相关联;因此,由这些用户创建的表的默认所有者为dbo。不是由上述两种角色的登录创建的表所有者默认为与该登录相关联的用户ID。table_name是新表的名称。表名必须符合标识符规则。数据库中的owner.table_name组合必须唯一。table_name最多可包含128个字符,但本地临时表的表名(名称前有一个编号符#)最多只能包含116个字符。column_name是表中的列名。列名必须符合标识符规则,并且在表内唯一。以timestamp数据类型创建的列可以省略column_name。如
33、果不指定column_name,timestamp列的名称默认为timestamp。computed_column_expression是定义计算列值的表达式。计算列是物理上并不存储在表中的虚拟列。计算列由同一表中的其它列通过表达式计算得到。例如,计算列可以这样定义:costASprice*qty。表达式可以是非计算
此文档下载收益归作者所有