您当前位置:优侠库 > 资讯攻略 >
来源:未知
2019-11-27 17:20:31 浏览: 分类:资讯攻略

解释下SQL建表命令的意思

创建表格

[数据库名称。【车主】。|所有者。]表名

({ & ltcolumn_definition >

| column _ name AS computed _ column _ expression

| & lttable _ constraint & gt::= [约束约束名称] }

| [ {主键|唯一} [,...n ]

)

[在{文件组|默认} ]

[text image _ ON { file group | DEFAULT }]

& ltcolumn_definition >::= {列名数据类型}

[整理& ltcollation _ name & gt]

[ [默认常量_表达式]

| [ IDENTITY [ ( seed,increment ) [不用于复制] ] ]

]

[ ROWGUIDCOL]

[& lt;column_constraint >] [ ...n ]

& ltcolumn_constraint >::= [约束约束名称]

{ [ NULL | NOT NULL ]

| [ {主键|唯一}

[聚集|非聚集]

[带填充因子=填充因子]

[在{文件组|默认} ] ]

]

| [ [外键]

引用ref_table [ ( ref_column ) ]

[在删除{层叠|无操作}时]

[更新时{级联|无操作} ]

[不用于复制]

]

|选中[不用于复制]

(逻辑表达式)

}

& lttable _ constraint & gt::= [约束约束名称]

{ [ {主键|唯一}

[聚集|非聚集]

{(列[ ASC | DESC ] [,...n ] ) }

[带填充因子=填充因子]

[在{文件组|默认} ]

]

|外键

[(列[,...n ] ) ]

引用ref_table [ ( ref_column [,...n ] ) ]

[在删除{层叠|无操作}时]

[更新时{级联|无操作} ]

[不用于复制]

|选中[不用于复制]

(搜索条件)

}

最佳答案:

参数

数据库名称

要在其中创建表的数据库的名称。database_name必须是现有数据库的名称。如果未指定数据库,database_name默认为当前数据库。当前连接的登录必须在database_name指定的数据库中有一个现有的用户ID,并且该用户ID必须具有创建表的权限。

物主

这是新资料表拥有者的使用者识别码名称,而且拥有者必须是database_name所指定的资料库中现有的使用者识别码。Owner默认为与database_name指定的数据库中的当前连接相关联的用户ID。如果CREATE TABLE语句是由database_name指定的数据库中的sysadmin固定服务器角色的成员或db_dbowner或db_ddladmin固定数据库角色的成员执行的,则owner可以指定与当前连接的登录名相关联的用户id以外的其他用户id。如果与执行CREATE TABLE语句的登录名关联的用户ID只有创建表的权限,则owner必须指定与当前登录名sysadmin关联的用户ID是固定服务器角色的成员,或者别名为dbo的登录名与用户ID dbo关联。因此,由这些用户创建的表的默认所有者是dbo,但是由上述两个角色的登录创建的表的所有者默认为与该登录相关联的用户ID。

表名

新表的名称。表名必须符合标识符规则。数据库中owner.table_name的组合必须是唯一的。table_name最多可以包含128个字符,但是本地临时表的名称(前面有一个数字#)最多只能包含116个字符。

列名

是的,表中的列名必须符合标识符规则,表中唯一用timestamp数据类型创建的列可以省略column_name。如果未指定column_name,默认情况下时间戳列的名称是timestamp。

计算列表达式

定义计算列值的表达式。计算列是一个虚拟列,它不是物理存储在表中。计算列是由同一表中其他列的表达式计算出来的。例如,计算列可以定义如下:成本作为价格*数量表达式可以是非计算列的列名、常数、函数、变量,或者由一个或多个运算符连接的上述元素的任意组合。表达式不能是子查询。

列可用于选择列表、WHERE子句、ORDER BY子句或任何其他可以使用正则表达式的地方,但下列情况除外:

计算列不能用作DEFAULT或FOREIGN KEY约束定义,也不能与NOT NULL约束定义一起使用。但是,如果计算列是由确定性表达式定义的,并且计算结果的数据类型在索引列中是允许的,则它可以用作索引中的键列,或者用作PRIMARY KEY或UNIQUE约束的一部分。

例如,如果表包含整数列A和B,则可以在计算列a+b上创建索引,但不能在计算列a+DATEPART(dd,GETDATE())上创建索引,因为它的值可能会在以后的调用中更改。

列不能是INSERT或UPDATE语句的目标。

说明表中用于计算列的列值因行而异,因此每行的计算列值可能不同。

sql server根据所使用的表达式自动确定列的计算空属性。即使只有不能空的列,大多数表达式的结果也被认为是空。因为可能的下溢或上溢也会产生空结果。使用COLUMNPROPERTY函数(AllowsNull属性)检查表中任何计算列的空属性。通过指定isNULL (check _ expression,constant),其中常数为非空值以替换任何空结果,可以空的表达式expr可以转换为不能空的表达式。

在{文件组|默认值}上

指定存储该表的文件组。该文件组必须存在于数据库中。如果指定了default,或者根本没有指定ON参数,则该表存储在DEFAULT文件组中。

ON {filegroup | DEFAULT}也可以在PRIMARY KEY约束或UNIQUE约束中指定。这些约束将创建索引。如果指定了文件组,索引将存储在指定的文件组中。如果指定了DEFAULT,索引将存储在默认文件组中。如果在约束中没有指定文件组,索引将存储在与表相同的文件组中。如果PRIMARY KEY约束或UNIQUE约束创建了聚集索引,则表的数据页将存储在与索引相同的文件组中。

说明在ON {filegroup | DEFAULT}和text image _ ON { file group | DEFAULT }的上下文中,DEFAULT不是关键字,而是默认文件组的标识符,需要用分隔符分隔,例如ON \ & quot默认\ & quot,ON [DEFAULT]和TEXTIMAGE _ ON \ & quot默认\ & quot或text image _ ON[默认]

TEXTIMAGE_ON

是一个关键字,指示text、ntext和image列存储在指定的文件组中。如果表中没有text、ntext或image列,则不能对使用TEXTIMAGE。如果不指定TEXTIMAGE_ON,text、ntext和IMAGE列将存储在与表相同的文件组中。

数据类型

列的指定数据类型可以是系统数据类型,也可以是用户自定义数据类型。用户定义的数据类型必须用sp_addtype创建,然后才能在表定义中使用。

在CREATE TABLE语句中,可以替换自定义数据类型的NULL/NOT NULL赋值,但不能改变长度标准;不能在CREATE TABLE语句中指定用户定义数据类型的长度。

系统默认值

如果在插入过程中没有显式提供值,则为该列提供的指定值的默认定义可以应用于任何列,但定义为timestamp或具有IDENTITY属性的列除外。删除表时,默认定义也将被删除。只有常量值(如字符串)、系统函数(如SYSTEM_USER())或NULL可以作为默认值。为了保持与SQL Server早期版本的兼容性,可以将约束名称分配给default。

常量_表达式

用作列默认值的常量、NULL或系统函数。

身份

指示新列是标识列。当向表中添加新行时,Microsoft?SQL Server?为标识列提供唯一的增量值。标识列通常与主键约束一起用作表的唯一行标识符。可以将identity属性分配给tinyint、smallint、int、bigint、decimal(p,0)或numeric(p,0)列。每个表只能创建一个identity列。绑定默认值和默认约束不能用于标识列。您必须指定种子和增量,或者两者都不指定。如果都没有指定,将采用默认值(1,1)。

种子

用于加载表格第一行的值。

增量

是添加到前一行的标识值的增量值。

不用于复制

当复制登录(如sqlrepl)将数据插入表中时,不强制身份属性复制的行必须保留发布数据库中给定的键值。NOT FOR REPLICATION子句确保不会为复制过程插入的行赋予新的标识值。其他登录插入的行仍然具有以通常方式创建的新标识值。建议将CHECK约束与NOT FOR REPLICATION一起使用,以确保给定的标识值在当前数据库的所需范围内。

返回行全局唯一标识列

指示新列是一行的全局唯一标识符列。每个表只能分配一个uniqueidentifier列作为ROWGUIDCOL列。ROWGUIDCOL属性只能分配给唯一标识符列。如果数据库兼容级别小于或等于65,则ROWGUIDCOL关键字无效。有关更多信息,请参见sp_dbcmptlevel。

ROWGUIDCOL属性不会强制存储在列中的值的唯一性,也不会为插入到表中的新行自动生成值。若要为每列生成唯一值,请在insert语句中使用NEWID函数,或者将NEWID函数指定为该列的默认值。

归类名称

指定列的排序规则排序规则名称可以是Windows排序规则名称或SQL排序规则名称collation_name仅适用于数据关键字标记:SQL。

优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。

本文链接:http://www.123down.cn/gonglue/227434.html

下一篇:Oracle timestamp
攻略资讯
安卓软件