SQL Server 2008テーブルのデータ型をvarchar(max)からnvarchar(max)に変更する必要があります。このテーブルにはデータが入っています。データを失うことなくデータ型を変更する方法はありますか?SQL Server 2008のデータ列をvarchar(max)からnvarchar(max)に変更する
13
A
答えて
17
あなただけのテーブルを変更するための標準的な構文を使用することができます。
ALTER TABLE some_table ALTER COLUMN some_column nvarchar(max)
はおそらく、期待どおりに動作することを確認するために、しかし、任意のインデックスを再構築したいと思うでしょう。
2
何が起きても、常にバックアップをとるので、元の状態に戻ることができます。
varchar(max)
からnvarchar(max)
に変更するとデータが失われないはずです。
サイドノート:いずれかが存在した場合、プロセスは、拡張文字を変換しなければならないとして、あなたはvarchar(max)
に他の方向nvarchar(max)
に変更された場合は、懸念を持っているかもしれません。
7
混乱を最小化するために、別のオプションは、(私はALTER COLUMN
がオンラインに発生するとは考えていないので)、次のとおりです。
ALTER TABLE dbo.table ADD new_column NVARCHAR(MAX); -- metadata operation
今、あなたは波/バッチ/取引のデータを更新する代わりに、に変更を適用することができます1つの長いトランザクションでテーブル全体。データがコピーされたことを確認したら、古い列を削除して新しい列の名前を変更し、影響を受けるインデックスを再作成することができます(MAX列はインデックスのキーにはありませんが、誤ってそれをINCLUDEの定義に入れます - そうであれば、とにかくそれに疑問を呈してください)。
まだ使用されていない領域(Enterprise Editionを使用している場合はオンラインで行うことができます)を再利用するために、すべてのインデックスを再構築する必要があります。
関連する問題
- 1. SQL 2008 - テキスト・データ・タイプVSのvarchar(MAX)
- 2. sql varchar(max)issue
- 3. T-SQL VARCHAR(MAX)
- 4. VARCHAR(MAX)列
- 5. varchar(max)MS SQL Server 2000、問題?
- 6. テキストをvarchar(MAX)に変換する
- 7. Varchar(max)列はSQL Serverのプライマリキーにはできません
- 8. FreeTDS MSSQL nvarchar(max)issue
- 9. 使用してデータ型はnvarchar(MAX)
- 10. sqlタイプ-10(Sql Serverのnvarchar(max)に関連)
- 11. SQL Server 2008のvarbinary(max)ファイルストリームの長さ
- 12. SQL Serverのテキストとvarchar(MAX)の間の変換
- 13. VARCHAR(MAX)を取得する
- 14. nvarchar(50)とnvarchar(max)の関係
- 15. SQL Server VARBINARY(MAX)
- 16. SQL Serverでvarchar(MAX)とTEXTを使用する
- 17. SQL 2005のnvarchar(max)の問題
- 18. SQL Serverのデータフィールドnvchar(x)またはnvarchar(max)
- 19. MAXとSUM SQL Server
- 20. SQL Server、nvarchar(MAX)またはntext、imageまたはvarbinary?
- 21. 短い文字列のNVARCHAR(MAX)
- 22. SQL Server varbinary(max)to imageデータ型
- 23. 最小限のロックでnvarchar(max)列のテーブルを更新する方法
- 24. SQL Server VARBINARY(max)からc#byte []
- 25. DataTable - Varchar()列からMax()の値を探しますか?
- 26. バイナリのBlobを8000バイトに切り捨て - SQL Server 2008/varbinary(max)
- 27. varchar(MAX)は常に望ましいですか? SQL Serverのについて
- 28. HQLを使用するvarcharカラムのMAX
- 29. SQL Server 2008 UDFでVarChar列を更新していますか?
- 30. ODBCを使用してvarchar(max)列に書き込む方法
非常に良い点+1 – RThomas