Измените размер столбца первичного ключа таблицы на 255 - PullRequest
0 голосов
/ 11 июля 2011

У меня таблица с размером столбца первичного ключа установлена ​​на 50. Из-за некоторых новых требований мне нужно увеличить размер до 255. После поиска в Интернете я понял, что невозможно изменить столбец, если ончасть ограничения первичного ключа.Итак, я выбрал способ удаления ограничения, изменения столбца и добавления ограничения обратно.Но я все еще испытываю небольшую проблему, мой исходный столбец имеет тип Non Null и имеет значение по умолчанию, но теперь, когда я пытаюсь выполнить следующий sql, я получаю ошибку «Неверный синтаксис рядом с DEFAULT»

ALTER TABLE [tblLocation] 
DROP CONSTRAINT [PK_tblLocation]

ALTER TABLE [tblLocation] 
ALTER COLUMN Location VARCHAR(255) DEFAULT('New Location') NOT NULL 

ALTER TABLE [tblLocation]
ADD
CONSTRAINT [PK_tblLocation] PRIMARY KEY CLUSTERED
(
[Location] ASC
)

Спасибо за любую помощь.Джавид

Ответы [ 2 ]

1 голос
/ 11 июля 2011

Проблема связана с синтаксисом SQL во втором операторе ALTER TABLE.

При изменении значения по умолчанию вы должны указать имя ограничения:

ALTER TABLE [tblLocation] 
ADD CONSTRAINT DF_tblLocation_Location DEFAULT 'New Location' FOR Location

(Я не уверен, почему. Я полагаю, что просто синтаксис CREATE TABLE отличается от синтаксиса ALTER TABLE.)

Однако не имеет смысла иметь значение по умолчанию для столбца первичного ключа ...

1 голос
/ 11 июля 2011

Вы не можете использовать `ALTER TABLE ... ALTER COLUMN ', чтобы изменить одновременно и столбец , и ограничение (здесь по умолчанию). Сначала вам нужно изменить столбец, а затем изменить ограничение по умолчанию. (Возможно, вам придется сначала удалить, а затем воссоздать по умолчанию.)

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