[英]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.