Sql server sp_列未考虑@column_name

Sql server sp_列未考虑@column_name,sql-server,stored-procedures,ssms,adventureworks,Sql Server,Stored Procedures,Ssms,Adventureworks,我正在阅读aboutsp_列,我试图从AdventureWorks2016.dbo.Person.Address中仅检索一个特定列: exec sp_columns @table_name = 'Person.Address', @Column_name = 'NULLABLE' SSMS正在将所有列检索为空 Microsoft文档中说,如果执行以下操作,我可以使用@Column\u name: exec sp_columns @table_name = 'Address' 您应该获得以下

我正在阅读about
sp_列
,我试图从
AdventureWorks2016.dbo.Person.Address
中仅检索一个特定列:

exec sp_columns @table_name = 'Person.Address', @Column_name = 'NULLABLE'
SSMS正在将所有列检索为空

Microsoft文档中说,如果执行以下操作,我可以使用
@Column\u name

exec sp_columns @table_name = 'Address'
您应该获得以下信息:

但是表中不存在
@Column\u name='NULLABLE'

如果您使用正确的列名运行查询,您将使其正常工作

例如:

exec sp_columns @table_name = 'Address', @Column_name = 'AddressID'

如果执行此操作:

exec sp_columns @table_name = 'Address'
您应该获得以下信息:

但是表中不存在
@Column\u name='NULLABLE'

如果您使用正确的列名运行查询,您将使其正常工作

例如:

exec sp_columns @table_name = 'Address', @Column_name = 'AddressID'

参数值必须仅为表名。使用
@table\u owner
列分别指定架构名称,并使用
@column\u name
参数值指定现有列的名称:

exec sp_columns @table_name = N'Address', @table_owner = N'Person', @column_name = N'AddressLine1';

在现代SQLServer版本中,模式和所有者在概念上是不同的,但这是一个相当旧的存储过程,模式和表所有者可以互换使用

参数值必须仅为表名。使用
@table\u owner
列分别指定架构名称,并使用
@column\u name
参数值指定现有列的名称:

exec sp_columns @table_name = N'Address', @table_owner = N'Person', @column_name = N'AddressLine1';
在现代SQLServer版本中,模式和所有者在概念上是不同的,但这是一个相当旧的存储过程,模式和表所有者可以互换使用