4
NVARCHAR列の値が実際にUnicodeであるかどうかを検出します
いくつかのSQL Serverデータベースを継承しました。ETLを取得するSQL Server 2014 Standardのソースデータベース(「Q」と呼びます)から約8670万行、41列の幅を持つ1つのテーブル(「G」と呼びます)がありますSQL Server 2008 R2 Standardで同じテーブル名を持つターゲットデータベース(「P」と呼びます)。 すなわち[Q]。[G] ---> [P]。[G] 編集:2017年3月20日:一部の人々は、ソーステーブルがターゲットテーブルの唯一のソースであるかどうかを尋ねました。はい、それが唯一のソースです。ETLに関する限り、実際の変換は行われていません。事実上、ソースデータの1:1コピーであることが意図されています。したがって、このターゲットテーブルに追加のソースを追加する予定はありません。 [Q]。[G]の列の半分強はVARCHAR(ソーステーブル)です。 13列はVARCHAR(80)です 9列はVARCHAR(30)です 2列はVARCHAR(8)です。 同様に、[P]。[G]の同じ列はNVARCHAR(ターゲットテーブル)で、同じ幅の同じ列数を持ちます。(つまり、同じ長さですが、NVARCHAR)。 13列はNVARCHAR(80)です 9列はNVARCHAR(30)です 2列はNVARCHAR(8)です。 これは私の設計ではありません。 ALTER [P]。[G](ターゲット)列のデータ型をNVARCHARからVARCHARに変更したい。安全に(変換によるデータ損失なしで)したいです。 ターゲット表の各NVARCHAR列のデータ値を見て、列に実際にUnicodeデータが含まれているかどうかを確認するにはどうすればよいですか? 各NVARCHAR列の各値を(ループで?)チェックし、値のいずれかが本物のUnicodeであるかどうかを確認できるクエリ(DMV?)は理想的なソリューションですが、他の方法も歓迎します。