[解決済み] 等値演算で "SQL_Latin1_General_CP1_CI_AS" と "Latin1_General_CI_AS" の照合の競合を解決できない
2022-02-05 16:57:15
質問事項
次のようなコードがあります。
SELECT tA.FieldName As [Field Name],
COALESCE(tO_A.[desc], tO_B.[desc], tO_C.Name, tA.OldVAlue) AS [Old Value],
COALESCE(tN_A.[desc], tN_B.[desc], tN_C.Name, tA.NewValue) AS [New Value],
U.UserName AS [User Name],
CONVERT(varchar, tA.ChangeDate) AS [Change Date]
FROM D tA
JOIN
[DRTS].[dbo].[User] U
ON tA.UserID = U.UserID
LEFT JOIN
A tO_A
on tA.FieldName = 'AID'
AND tA.oldValue = CONVERT(VARCHAR, tO_A.ID)
LEFT JOIN
A tN_A
on tA.FieldName = 'AID'
AND tA.newValue = CONVERT(VARCHAR, tN_A.ID)
LEFT JOIN
B tO_B
on tA.FieldName = 'BID'
AND tA.oldValue = CONVERT(VARCHAR, tO_B.ID)
LEFT JOIN
B tN_B
on tA.FieldName = 'BID'
AND tA.newValue = CONVERT(VARCHAR, tN_B.ID)
LEFT JOIN
C tO_C
on tA.FieldName = 'CID'
AND tA.oldValue = tO_C.Name
LEFT JOIN
C tN_C
on tA.FieldName = 'CID'
AND tA.newValue = tN_C.Name
WHERE U.Fullname = @SearchTerm
ORDER BY tA.ChangeDate
コードを実行すると、テーブルCの2つの結合を追加した後にタイトルにあるようなエラーが発生します。これは、私がSQL Server 2008を使用していて、このデータベースのコピーを2005の私のマシンにリストアしたことと関係があるのではないかと思います。
どうすればいいですか?
テーブル内に2つの異なる照合順序の不一致があります。このクエリを使用すると、テーブルの各カラムがどの照合順序を持っているかを確認することができます。
SELECT
col.name, col.collation_name
FROM
sys.columns col
WHERE
object_id = OBJECT_ID('YourTableName')
照合順序は、文字列を並べたり比較したりする際に必要であり、使用されます。一般に、データベース全体で単一の照合順序を使用することは良い考えです。単一のテーブルまたはデータベース内で異なる照合順序を使用しないでください。
照合順序を1つに決めたら、このコマンドを使って、まだ一致していないテーブル/カラムを変更することができます。
ALTER TABLE YourTableName
ALTER COLUMN OffendingColumn
VARCHAR(100) COLLATE Latin1_General_CI_AS NOT NULL
マルク
UPDATE: データベース内のフルテキストインデックスを見つけるには、ここでこのクエリを使用します。
SELECT
fti.object_Id,
OBJECT_NAME(fti.object_id) 'Fulltext index',
fti.is_enabled,
i.name 'Index name',
OBJECT_NAME(i.object_id) 'Table name'
FROM
sys.fulltext_indexes fti
INNER JOIN
sys.indexes i ON fti.unique_index_id = i.index_id
そして、フルテキストインデックスを削除することができます。
DROP FULLTEXT INDEX ON (tablename)
関連
-
[解決済み】フラットファイルの日付カラムで「キャスト指定に無効な文字値があります」を修正する方法とは?
-
[解決済み] SSRS レポートの定義が無効です。
-
[解決済み] SQL Serverで文字列からすべてのスペースを削除する
-
[解決済み] SQL ServerのIsNull()関数に相当するOracleは何ですか?
-
[解決済み] SQL ServerでBegin / End BlocksとGoキーワードを使用する?
-
[解決済み] MS SQL Serverで数値をパーセントでフォーマットする
-
[解決済み] SQL Server のストアドプロシージャを SQL Developer で実行するには?
-
[解決済み] スカラー変数を宣言する必要があります。
-
[解決済み] varcharとnvarcharの違いは何ですか?
-
[解決済み] SQL Serverにおけるchar、nchar、varchar、nvarcharの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】各GROUP BY式は、外部参照でない列を少なくとも1つ含む必要があります。
-
[解決済み] SQL Server MS 2012の現在のセキュリティコンテキストでは、サーバープリンシパルはデータベースにアクセスできません。
-
[解決済み] サブレポートが表示されない。サブレポートは別々に動作します - メインレポートとは連動しません
-
[解決済み] SSRS レポートの定義が無効です。
-
[解決済み] データベースのトランザクションログが満杯です。ログの領域が再利用できない理由を調べるには、sys.databases の log_reuse_wait_desc カラムを参照してください。
-
[解決済み] MS SQL Server 2005で行のSNoを自動的に設定する方法は?
-
[解決済み] SSISで新しいレコードを挿入する前に、宛先テーブルを空にするにはどうすればよいですか?
-
[解決済み] 関数内から実行できるのは、関数と一部の拡張ストアドプロシージャのみです。
-
[解決済み] SQL ServerでCreateステートメントを使用してtempテーブルを作成する方法は?
-
[解決済み] SQL ServerでBegin / End BlocksとGoキーワードを使用する?