質問

私はVARCHAR列の完全保存可能なデータが含まれている疑いがあるNVARCHAR列の束を持っています。しかし、私は最善のためにVARCHARと希望にカラムのタイプを移動して、変更することはできません、私はチェックのいくつかの並べ替えを行う必要があります。

データが静的である(それは将来的に変更されません)と列のインデックスを作成しており、実際の(NVARCHAR)指数に比べて小さい(varchar型)インデックスから恩恵を受けるので、

私は、変換をしたいです。

私は単純に言えば、

ALTER TABLE TableName ALTER COLUMN columnName VARCHAR(200)

私は、エラーや警告を取得することはできません。 Unicodeデータが失わ/切り捨てられます。

をどのようにチェックしますか?

役に立ちましたか?

解決

なぜそこにキャストしないと戻って失われるデータの参照する?

これは、想定している列はNVARCHAR(200)で開始することである

SELECT *
FROM TableName
WHERE columnName <> CAST(CAST(columnName AS varchar(200)) AS nvarchar(200))

他のヒント

うーん、興味深います。

私は、SQLクエリ自体でこれを行うことができますかわかりません。あなたはコードでそれを行うには満足していますか?その場合は、文字列や、チェック中のすべての文字をループ、その後、すべてのレコードを取得することができます。しかし、男はそれは遅い方法です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top