SQL Server 2008にNVARCHAR(MAX)という列の1つを持つ既存のテーブルがあり、その中に10文字未満の値しかありません。 この表は実稼働中であり、データが入っています。nvarchar(max)からnvarchar(50)に列を変更する方法
私はこの列をNVARCHAR(MAX)からNVARCHAR(50)に変更する必要があります。 T SQL Serverでは、この操作を実行中に切り捨てエラーが発生する、その列のデータは10文字未満です。
は、これが私のスクリプトです:
ALTER TABLE [dbo].[Table] ALTER COLUMN [Column1] NVARCHAR (50) NOT NULL
* exact *エラーとは何ですか?データが実際に10文字未満であると確信していますか? 'WHERE LEN(Column1)> 50'行を照会してみてください。また、 'NVARCHAR(MAX)'は* blobs *を格納するための型であり、SQL Serverは型の変更を許可しないことに注意してください。そのため、完全なエラーメッセージ –
を投稿する必要があります。「その列のデータは10文字未満です」 - 本当ですか?末尾に空白を入れるのは簡単です。 SELECT * FROM dbo.TABLE WHERE LEN(Column1)> 50を実行してください。 – DaveBoltman
また、実際にはエラーですか、それとも警告ですか? – HoneyBadger