SQL Server не позволяет мне идентифицировать столбцы - PullRequest
0 голосов
/ 05 апреля 2011

Итак, у меня есть таблица в SQL Server со столбцом первичного ключа и еще 4 столбца.Когда я изменяю таблицу и выбираю столбец первичного ключа в качестве идентификатора, он не позволяет мне сохранить таблицу.

Как создать столбец идентификатора через T-SQL или что-то подобное, не переходя кПользовательский интерфейс?

Спасибо.

Вот вам создание

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

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

Вы не можете превратить существующий столбец в столбец IDENTITY после его создания.

ALTER TABLE dbo.YourTable
  ALTER COLUMN YourColumn INT IDENTITY

приведет к ошибке:

Msg156, Уровень 15, Состояние 1, Строка 2
Неверный синтаксис рядом с ключевым словом «IDENTITY».

Вам необходимо создать новый столбец типа INT IDENTITY итогда, возможно, уронить старый.Или, если ваша таблица еще пуста: удалите ее и создайте заново с правильными настройками для столбца идентификатора

1 голос
/ 05 апреля 2011
ALTER TABLE MyTable
ADD NewIdentity INT IDENTITY;

ALTER TABLE MyTable
DROP COLUMN OldPK;

EDIT

Если ваша таблица пуста, просто отбросьте ее и добавьте IDENTITY после INT в столбце PK и покончите с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...