2016-12-07 1 views
0

В настоящее время у меня есть база данных SQL со значением столбца nvarchar (255) Мне нужно изменить это как nvarchar (600), когда я редактирую его в SQL visual studio на сервере появляется предупреждение и указывается, что таблица должна быть удалена и перестроена для моих изменений. I НЕ ДЕЛАЮТ сделать это по совету разработчика, который создал программу в первую очередь. (В настоящее время он не может внести изменения для меня).Измените максимальное значение nvarchar в базе данных SQL, не удаляя и не восстанавливая таблицу

Я видел много ответов, которые советуют снять отметку «Предотвратить сохранение изменений, которые требуют ...» в настройках, но опять-таки это то, что я неохотно делаю, советуя многим другим на этом сайте и в другом месте.

Есть ли у кого-нибудь какие-либо предложения по изменению этого максимального значения без необходимости удалять и перестраивать таблицу?

Простенькое заявление ALTER работает? Поле не позволяет значениям NULL что-то вроде этой работы?

ALTER TABLE dbo.myTable 
ALTER COLUMN myColumn VARCHAR(600) 
+1

Append 'НЕ NULL' вариант до конца заявления. F5. –

+0

@IvanStarostin Msg 5074, уровень 16, состояние 1, строка 1 Объект «DF_myTable_myColumn» зависит от столбца «myColumn». Msg 4922, уровень 16, состояние 9, строка 1 ALTER TABLE ALTER COLUMN myColumn не удалось, так как один или несколько объектов обращаются к этому столбцу. - Я заменил имена в фактическом сообщении btw. – LewisJWright

+0

Предыдущий разработчик заявил, что мне нужно будет изменить тип таблицы? : S – LewisJWright

ответ

0
SET XACT_ABORT ON 

BEGIN TRAN 

ALTER TABLE dbo.myTable 
DROP CONSTRAINT DF_myTable_myColumn 

ALTER TABLE dbo.myTable 
ALTER COLUMN myColumn VARCHAR(600) NOT NULL 

ALTER TABLE dbo.myTable 
ADD CONSTRAINT DF_myTable_myColumn DEFAULT('foo') FOR myColumn 

COMMIT TRAN 
Смежные вопросы