一个比较标准的sqlserver建表格式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个比较标准的sqlserver建表格式
CREATE TABLE [dbo].[admin](
[id] [int] IDENTITY(1,1) NOT NULL,
[usersname] [nvarchar](50) NULL,
[password] [nvarchar](50) NULL,
[groud] [int] NULL CONSTRAINT [DF_admin_groud] DEFAULT ((0)),
[data] [datetime] NULL CONSTRAINT [DF_admin_data] DEFAULT (getdate()),
CONSTRAINT [PK_admin] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
解释:
CONSTRAINT [PK_admin] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
这是在id列上创建一个唯一聚集索引的语句。
primary key表明创建的是主键约束,culstered表示索引类型是聚集索引,IGNORE_DUP_KEY = OFF的作用是在向表中插入数据的时候,如果遇到表中已经存在id的值,insert语句就会失败,并且回滚整个insert语句。
ON [PRIMARY]表示是索引创建在主文件组上。
[pk_ admin] 是主键的名称。
需要注意的是sqlserver2000不支持WITH (IGNORE_DUP_KEY = OFF)
再看一个,和上面的有一点不一样:
CREATE TABLE [dbo].[news](
[id] [int] IDENTITY(1,1) NOT NULL,
[title] [nvarchar](100) NULL,
[classid] int NULL,
boardid int NULL,
[contents] [ntext] NULL,
[oSource] [nvarchar](50) NULL,
[oAuthor] [nvarchar](50) NULL,
[picurl] [nvarchar](100) NULL,
[keytxt] [nvarchar](50) NULL,
[data] [datetime] NULL CONSTRAINT [DF_news_data] DEFAULT (getdate()),
[hklick] [int] NULL CONSTRAINT [DF_news_hklick] DEFAULT ((0)), [pinglun] [int] NULL CONSTRAINT [DF_news_pinglun] DEFAULT ((0)),
CONSTRAINT [PK_content] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
解释:TEXTIMAGE_ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]说明当表中有text、ntext或image列时,将text、ntext或image列的内容放在哪个文件组.如果都是primary那就是放在同一个文件组里.
附:聚集索引
一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。
聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。
聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理相邻。例如,如果应用程序执行的一个查询经常检索某一日期范围内的记录,则使用聚集索引可以迅速找到包含开始日期的行,然后检索表中所有相邻的行,直到到达结束日期。这样有助于提高此类查询的性能。同样,如果对从表中检索的数据进行排序时经常要用到某一列,则可以将该表在该列上聚集(物理排序),避免每次查询该列时都进行排序,从而节省成本。
当索引值唯一时,使用聚集索引查找特定的行也很有效率。例如,使用唯一雇员ID 列emp_id 查找特定雇员的最快速的方法,是在emp_id 列上创建聚集索引或PRIMARY KEY 约束。