web-dev-qa-db-ja.com

NTEXTからNVARCHAR(MAX)への移行

タイプNTEXTの列を持つテーブルがあります。そして、いくつかの特殊な理由により、クライアントは列タイプをNVARCHAR(MAX)に移行したいと考えています。

その際、どのような潜在的な脅威に注意する必要がありますか?

NVARCHAR(MAX)制限のためにデータが失われる可能性はありますか?

5
balu

いいえ。テーブルを変更できます(SQL 2005+) cf this

または、あなたの便宜のために:

_alter table my_table alter column my_ntext_column nvarchar(max);
_

または、ntext列をnvarchar(max)にキャストするビューを提供して、クライアントを満足させ、データベースを変更しないでおくことができます。

6
bernd_k

「特有の理由」?そのntextだけが非推奨であり、扱いが難しいのですか?

それは無損失の変換です。不明な場合は、SSMS GUIデザイナーを使用してスクリプトを生成してください。

7
gbn

NVARCHAR(MAX)の制限によりデータが失われる可能性はありますか?

いいえ。 NVARCHAR(MAX)ntext の2倍のテキスト(2 ^ 31-1対2 ^ 30-1)を使用できます。 。

2
Tangurena