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. nvarchar(max)からnvarchar(50)に列を変更する方法
- 2. SQL 2008 - テキスト・データ・タイプVSのvarchar(MAX)
- 3. sql varchar(max)issue
- 4. varchar(max)列のSQLクエリxmlデータ
- 5. T-SQL VARCHAR(MAX)
- 6. varchar(max)MS SQL Server 2000、問題?
- 7. VARCHAR(MAX)列
- 8. テキストをvarchar(MAX)に変換する
- 9. SQL Server 2008のvarbinary(max)ファイルストリームの長さ
- 10. SQL ServerはどのようにこれらのUnicode文字をVARCHAR(MAX)でNVARCHAR(MAX)でない列に格納しますか
- 11. MS-SQLのCFQueryParam/cfsqltype varchar(max)データ型
- 12. FreeTDS MSSQL nvarchar(max)issue
- 13. Varchar(max)列はSQL Serverのプライマリキーにはできません
- 14. sqlタイプ-10(Sql Serverのnvarchar(max)に関連)
- 15. sqlのnvarchar(max)データフィールドを解析する
- 16. 使用してデータ型はnvarchar(MAX)
- 17. SQL Server 2008 VarChar(Max)は、8000文字のみを返します。どうして?
- 18. SQL Serverのテキストとvarchar(MAX)の間の変換
- 19. VARCHAR(MAX)を取得する
- 20. SQLがint列のnvarchar(max)列に結合する
- 21. nvarchar(50)とnvarchar(max)の関係
- 22. SQL ServerでNvarchar(max)が4000文字に縮小されます
- 23. SQL Server VARBINARY(MAX)
- 24. SQL Server SUM、MAX
- 25. SQL Serverでvarchar(MAX)とTEXTを使用する
- 26. SQL 2005のnvarchar(max)の問題
- 27. VARCHAR(MAX)を使用できるSQL Serverのバージョンは?
- 28. SQL ServerのSAS max
- 29. SQL Serverのデータフィールドnvchar(x)またはnvarchar(max)
- 30. opensuse-webserverのMSSQL nvarchar(max)
非常に良い点+1 – RThomas