create table tablename (selId int identity,...)
解决方案 »
- 菜鸟提问 关于Excel导入SQL 2005的问题 在线等
- 如何知道自己安装的SQL2000要打补丁?
- 字符串连接函数的BUG?怎么按时间先后累加呀.
- 关于数据库表的问题,请各位帮帮忙!!
- 这里用过asp+sqlserver的进来看看一个看似简单的问题。
- sql查询语句的问题探讨
- 这条SQL语句错在那里?(在线)
- 送分小问题6-VB中如何取得一个颜色的RED,GREEN,和BLUE分量?
- 关于VFP对注册表的操作的问题
- 更新A表中的heji,条件是A表的id在B表里
- 请问这样改表名不对ALTER TABLE 表名1 TO 表名2 ,应该怎样改
- 建库时没有指定大小,用的是系统默认的大小,请问在以后的使用中,当用户向其中添加数据时,会不会出现数据库大小不够的情况。
[id] [int] IDENTITY (1, 1) NOT NULL ,
)
GO
id int identity(1,1),
item1 char(10),
item2 int,
item3 datetime
) on [primary]
说明此表中的ID是一个整型自增量型数据类型,第一个记录此项值为1,以后每增加一条记录,此项数就自动加一。
1、@@IDENTITY
2、IDENT_CURRENT()
3、SCOPE_IDENTITY( 。
CREATE TABLE visitorID (theID NUBERIC(18) IDENTITY,name VARCHAR(40))这个语句所创建的表包含一个名为theid的标识字段。每当一个新的访问者名字添加到这个表中时,这个字段就被自动赋给一个新值。你可以用这个表为你的站点的每一个用户提供唯一标识。技巧:建立一个标示字段时,注意使用足够大的数据类型。例如你使用TINYINT型数据,那么你只能向表中添加255个记录。如果你预计一个表可能会变得很大,你应该使用NUMERIC型数据。标识字段的存在会使你想尝试许多不可能的事情。例如,你也许想利用标识字段来对记录进行基于它们在表中位置的运算。你应该抛弃这种意图。每个记录的标识字段的值是互不相同的,但是,这并不禁止一个标识字段的标识数字之间存在间隔。例如,你永远不要试图利用一个表的标识字段来取出表中的前十个记录。这种操作会导致失败,比如说6号记录和7号记录根本不存在。 在 CREATE TABLE 语句中,将 COLLATE 子句添加到列定义中即可。以下示例中的作业说明有一个用于阿拉伯语的排序规则集(不区分大小写、重音和假名类型)。CREATE TABLE jobs
(
job_id smallint
IDENTITY(1,1)
PRIMARY KEY CLUSTERED,
job_desc varchar(50)
COLLATE Arabic_CI_AI_KS
NOT NULL
DEFAULT "New Position - title not formalized yet",
)您可以使用 ALTER TABLE 语句来更改具有新数据类型的列级别排序规则(ntext 或 text 列除外)。但是,您可以使用 SQL Server 企业管理器更改 ntext 列的排序规则。这是因为 SQL Server 企业管理器会创建一个 temp 表,将数据移动到新的 temp 表,删除旧表,使用新的排序规则创建一个新表,然后再将数据复制回新表。
在一个频繁发生插入操作的表上建立聚簇索引时,不要建在具有单调上升值的列(如IDENTITY)上,否则会经常引起封锁冲突。
IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。有关更多信息,请参见 IDENT_CURRENT。SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。
UPDATEIDENTITY