【SQL的學習筆記】SQL SERVER查詢出數據庫中特定排序規則的表和字段

因爲數據庫服務器使用的是Linux系統,當時創建數據庫的時候沒有注意,使得數據庫內某些表的部分字段的排序規則使用了非中文的排序方式。
導致那些字段的中文內容查詢出來亂碼,如果不更改其排序方式的話,那麼數據庫涉及到的存儲過程都需要在代碼裏做專門的處理,而挨個查看存儲過程查找涉及情況,將是一個非常漫長的過程。
所以,將這些字段的排序規則更正爲中文排序規則成了最終的解決方案。
爲了進行更改,需要先查詢出錯誤排序規則的字段分別有哪些,於是編寫了如下代碼:

--查詢本數據庫中,所有表的所有字段,篩選出其中排序規則使用了非中文排序方式的字段
SELECT
	 [表名] = MyTables.[name]
	,[字段名] = C.[name]
	,[數據類型] = ST.[name]
	,[排序規則] = C.[collation_name]
FROM sys.columns C 
JOIN sys.types ST ON C.[user_type_id] = ST.[user_type_id]
JOIN sys.tables MyTables ON C.[object_id] = OBJECT_ID(MyTables.[name])
WHERE C.[collation_name] NOT LIKE '%Chinese_PRC_CI_AS%'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章