2016-12-07 10 views
0

현재 SQL 데이터베이스에 nvarchar (255)의 열 값이 있습니다.이 값을 nvarchar (600)로 변경해야합니다. 서버에있는 SQL Visual Studio에서 경고가 나타나고 변경 사항을 적용하기 위해 테이블을 삭제하고 다시 작성해야한다고 나와 있습니다. I 아니요은 처음에 프로그램을 만든 개발자의 조언을 받아야합니다. (그는 나를 위해이 시간에 변경할 수 없습니다).테이블을 삭제하고 다시 작성하지 않고 SQL 데이터베이스에서 nvarchar의 최대 값을 변경하십시오.

설정에서 "변경 사항 저장 필요 없음 ..."을 선택 취소 하시겠다는 답변이 많이 나 왔지만이 사이트와 다른 곳의 다른 많은 사람들의 조언에 대해서는 주저하고 있습니다.

누가 테이블을 삭제하고 다시 만들 필요없이이 최대 값을 변경하는 방법에 대한 제안 사항이 있습니까?

간단한 ALTER 성명을 사용 하시겠습니까? 이 필드는 NULL 값을 허용하지 않습니다. 문장의 끝으로

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

추가]'NOT NULL' 옵션을 선택합니다. F5. –

+0

@IvanStarostin Msg 5074, 수준 16, 상태 1, 줄 1 개체 'DF_myTable_myColumn'열 'myColumn'에 종속됩니다. 메시지 번호 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