Подтвердить что ты не робот

Найти нестандартную сортировку по столбцам для всех таблиц в SQL Server

Есть ли script, который я могу использовать для поиска всех столбцов во всех таблицах в каталоге SQL, у которого нет сортировки <database default>?

Я взял на себя унаследованную систему и имел разные сопоставления в некоторых таблицах, и я хотел бы найти все экземпляры в одном ударе, а не проходить вручную.

Однако я не хочу менять программную сортировку программно, так как я хотел бы каждый раз просматривать каждую таблицу.

enter image description here

4b9b3361

Ответ 1

Попробуйте script здесь:

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

Он проверяет соответствие по умолчанию для базы данных, а затем находит любые столбцы, которые не соответствуют этому.