所以我在SQL Server中有一个表,主键列和其他4列。当我修改表格并选择主键列为标识时,它不会让我保存表格。
如何通过T-SQL或其他东西使其成为标识列而无需转到UI?
感谢。
这是创建
USE [db]
GO
/****** Object: Table [dbo].[tblMessages] Script Date: 04/05/2011 11:58:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tblMessages](
[messageId] [int] NOT NULL,
[messageText] [varchar](500) NOT NULL,
[messageLatitude] [float] NOT NULL,
[messageLongitude] [float] NOT NULL,
[messageTimestamp] [datetime] NOT NULL,
PRIMARY KEY CLUSTERED
(
[messageId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
答案 0 :(得分:2)
您无法将现有列转换为IDENTITY
列。
ALTER TABLE dbo.YourTable
ALTER COLUMN YourColumn INT IDENTITY
会导致错误:
Msg 156,Level 15,State 1,Line 2
关键字附近的语法不正确 '身份'。
您需要创建INT IDENTITY
类型的新列,然后可能删除旧列。或者,如果您的表仍为空:将其删除并使用ID列的正确设置重新创建
答案 1 :(得分:1)
ALTER TABLE MyTable
ADD NewIdentity INT IDENTITY;
ALTER TABLE MyTable
DROP COLUMN OldPK;
修改强>
如果您的表格为空,只需将其删除,然后在IDENTITY
之后的PK列中添加INT
即可。