sql 语句,设定标识列、
3个回答
展开全部
alter table test
add id int identity(1,1)
id列事先不存在
add id int identity(1,1)
id列事先不存在
更多追问追答
追问
……存在了、就是把一个数据库的表导入到另一个数据库里后给表的主键添加标识规范、
追答
DECLARE @i int
SET @i=0
UPDATE [tablename]
SET @i=@i+1,[列名]=@i
不知道你是不是这意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
alter table tablename alter 列名(数据类型) IDENTITY(1,1);
更多追问追答
追问
不对、
追答
恩,写错了
应该是alter table 表名 alter COLUMN 列名(数据类型) IDENTITY(1,1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已经有数据的表还能设置标识列吗?不能了把好像。
更多追问追答
追问
我设定的是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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询