在SQL Server数据库的所有表中查找nvarchar(max)类型的所有列

Leg*_*ion 9 sql sql-server

我在stackoverflow上发现了这个问题几乎回答了我的问题:在SQL Server数据库的所有表中查找特定类型的所有列

但是我需要专门找到nvarchar(max)类型的所有字段.如果我试试这个:

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

它不起作用,也没有返回任何内容.如果我试试这个:

SELECT table_name [Table Name], column_name [Column Name]
FROM information_schema.columns where data_type = 'nvarchar'
Run Code Online (Sandbox Code Playgroud)

它有效,但有数百个结果,我只关心最大尺寸的字段.如何具体选择所有nvarchar(max)字段?

Sql*_*Zim 12

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
Run Code Online (Sandbox Code Playgroud)


cyb*_*sin 6

SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE = 'nvarchar' AND CHARACTER_MAXIMUM_LENGTH = -1
Run Code Online (Sandbox Code Playgroud)

  • 我认为您在“nvarchar”和“CHARACTER_MAXIMUM_LENGTH”之间缺少“AND” (2认同)