sp_column 不考虑@Column_name

sp_column not considering @Column_name

我正在阅读 official Microsoft guide 关于 sp_columns 的文章,我正在尝试从 AdventureWorks2016.dbo.Person.Address 中仅检索一个特定的列:

exec sp_columns @table_name = 'Person.Address', @Column_name = 'NULLABLE'

SSMS 将所有列检索为空

Microsoft 文档说我可以使用 @Column_name

如果你执行这个:

exec sp_columns @table_name = 'Address'

您应该得到以下信息:

如何 @Column_name = 'NULLABLE' 不存在于 table

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

例如这个:

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

@table_name 参数值必须单独为 table 名称。使用 @table_owner 列单独指定架构名称,并使用 @column_name 参数值指定现有列的名称:

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

架构和所有者在现代 SQL 服务器版本中在概念上有所不同,但这是一个相当古老的存储过程,其中架构和 table 所有者可以互换使用。