Rip*_*ppo 28 sql-server sql-server-2005
是否有一个脚本可用于查找SQL目录中没有排序规则的所有表中的所有列<database default>?
我接管了一个遗留系统,并在一些表中有不同的排序规则,我想在一次点击中找到所有实例,而不是手动完成.
但是我不想以编程方式更改排序规则,因为我希望逐个查看每个表.

mar*_*c_s 71
在这里试试这个脚本:
DECLARE @DatabaseCollation VARCHAR(100)
SELECT
@DatabaseCollation = collation_name
FROM
sys.databases
WHERE
database_id = DB_ID()
SELECT
@DatabaseCollation 'Default database collation'
SELECT
t.Name 'Table Name',
c.name 'Col Name',
ty.name 'Type Name',
c.max_length,
c.collation_name,
c.is_nullable
FROM
sys.columns c
INNER JOIN
sys.tables t ON c.object_id = t.object_id
INNER JOIN
sys.types ty ON c.system_type_id = ty.system_type_id
WHERE
t.is_ms_shipped = 0
AND
c.collation_name <> @DatabaseCollation
Run Code Online (Sandbox Code Playgroud)
它检查数据库默认排序规则,然后查找不符合该排序规则的任何列.