簡體   English   中英

確定nvarchar列中的varchar內容

[英]Determine varchar content in nvarchar columns

我有一堆NVARCHAR列,我懷疑在VARCHAR列中包含完全可存儲的數據。 但是,我不能只是將列的類型更改為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 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM