2017-02-22 18 views
2

Я нашел этот вопрос на StackOverflow, что почти отвечает на мой вопрос: Find all columns of a certain type in all tables in a SQL Server databaseНайти все столбцы типа NVARCHAR (макс) во всех таблицах в базе данных SQL Server

Однако мне нужно найти все поля типа NVARCHAR (макс) в частности. Если я попробую это:

SELECT table_name [Table Name], column_name [Column Name] 
FROM information_schema.columns where data_type = 'nvarchar(max)' 

Это не работает, и ничего не возвращается. Если я попробую это:

SELECT table_name [Table Name], column_name [Column Name] 
FROM information_schema.columns where data_type = 'nvarchar' 

Это работает, но есть сотни результатов, и мне только нравятся поля максимального размера. Как выбрать все поля nvarchar (max)?

ответ

4

character_maximum_length будет -1 для max.

select 
    table_name as [Table Name] 
    , column_name as [Column Name] 
from information_schema.columns 
where data_type = 'nvarchar' 
    and character_maximum_length=-1 
+0

Это сработало, спасибо! – Legion

+0

@ Legion Счастливые помочь! – SqlZim

2
SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
WHERE DATA_TYPE = 'nvarchar' AND CHARACTER_MAXIMUM_LENGTH = -1 
+2

Я думаю, что вам не хватает 'AND' между' 'nvarchar'' и' CHARACTER_MAXIMUM_LENGTH' – Legion

 Смежные вопросы

  • Нет связанных вопросов^_^