sql 语句,设定标识列、

RT、表结构已经完整,并且已经有数据了(几十万,如果右键修改来设定标识规范,就会超时、)... RT、 表结构已经完整,并且已经有数据了(几十万,如果右键修改来设定标识规范,就会超时、) 展开
 我来答
Daniel_bad
2011-11-02 · TA获得超过635个赞
知道小有建树答主
回答量:382
采纳率:100%
帮助的人:217万
展开全部
alter table test
add id int identity(1,1)

id列事先不存在
更多追问追答
追问
……存在了、就是把一个数据库的表导入到另一个数据库里后给表的主键添加标识规范、
追答
DECLARE @i int
SET @i=0
UPDATE [tablename]
SET @i=@i+1,[列名]=@i

不知道你是不是这意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjy198518
2011-11-02 · TA获得超过867个赞
知道小有建树答主
回答量:777
采纳率:80%
帮助的人:569万
展开全部
alter table tablename alter 列名(数据类型) IDENTITY(1,1);
更多追问追答
追问
不对、
追答
恩,写错了
应该是alter table 表名 alter COLUMN 列名(数据类型) IDENTITY(1,1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
v6da
2011-11-02 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:90.2万
展开全部
已经有数据的表还能设置标识列吗?不能了把好像。
更多追问追答
追问
我设定的是Id这列为标识列,右键设定为主键显示超时,用sql语句成功设定为了主键,并且Id是连续的,设定标识列时也是超时,所以想看看sql语句可不可以、注意Id是连续的、
追答
一般是不可以的。标识列是数据库自己控制的。如果你原来的表有了数据,就不能再将某列设置为标识列了。只能新建新表然后再倒腾数据。
倒腾数据时请参考我下面的代码:
一下脚本是给Table_1表的ID列添加标识列
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_Table_1
(
ID int NOT NULL IDENTITY (1, 1),
NAME nchar(10) NULL
) ON [PRIMARY]
GO
SET IDENTITY_INSERT dbo.Tmp_Table_1 ON
GO
IF EXISTS(SELECT * FROM dbo.Table_1)
EXEC('INSERT INTO dbo.Tmp_Table_1 (ID, NAME)
SELECT ID, NAME FROM dbo.Table_1 WITH (HOLDLOCK TABLOCKX)')
GO
SET IDENTITY_INSERT dbo.Tmp_Table_1 OFF
GO
DROP TABLE dbo.Table_1
GO
EXECUTE sp_rename N'dbo.Tmp_Table_1', N'Table_1', 'OBJECT'
GO
ALTER TABLE dbo.Table_1 ADD CONSTRAINT
PK_Table_1 PRIMARY KEY CLUSTERED
(
ID
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

GO
COMMIT
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式