1

SQL Azure DB でテスト DB 環境を構築する際に、元のプロトタイプ DB から生成された CREATE TABLE スクリプトを使用して新しい DB を動的に生成します。

これらのテーブルの一部はプロトタイプ DB からのデータを必要とするため、これらのそれぞれに対して外部テーブルを作成し (プロトタイプ DB のテーブルを参照)、外部テーブルからデータを取得して正確なコピーに挿入する INSERT INTO クエリを実行します。テストDBで。

ここで重要な点は、プロトタイプ DB に組み込まれているスクリプトを使用して、新しいテーブルと外部テーブルの両方が動的に生成されることです。したがって、新しいテーブルと外部テーブルは、プロトタイプ DB の正確なコピーである必要があります。

ただし、これらのテーブルの 1 つで、例外が発生しました。

ラージ オブジェクト列のサポートは、nvarchar(max) データ型のみに制限されています。

問題のテーブルには NVARCHAR (MAX) を超えるもの (TEXT など) はありませんでしたが、10 個の NVARCHAR (MAX) 列がありました。したがって、これらの列を NVARCHAR (4000) に変更し、プロセスを再度実行しました。

次の例外が発生しました。

外部テーブルの列 'my_column_name' のデータ型は、外部ソースに存在する基になるスタンドアロン テーブルまたはシャード テーブルの列のデータ型とは異なります。

プロトタイプDB、外部テーブル、および新しいテーブルの列タイプを更新して確認したところ、これらすべてがデータタイプがNVARCHAR(4000)であることを示しています。

では、なぜデータ型が異なると教えてくれるのでしょうか?

以前は列が NVARCHAR (MAX) だったのは偶然ですか?

4

0 に答える 0