Transact-SQL 参考

sp_special_columns

返回唯一标识表中某行的优化列集。当事务更新行中的全部值时,还返回自动更新的列。

语法

sp_special_columns [@name =] 'name'
    
[,[owner =] 'owner']
    [,[@qualifier =] 'qualifier']
    
[,[@col_type =] 'col_type']
    [,[@scope =] 'scope']
    [,[@nullable =] 'nullable']
    [,[@ODBCVer =] 'ODBCVer']

参数

[@name =] 'name'

是用于返回目录信息的表名。name 的数据类型是 sysname,没有默认设置。不支持通配符模式匹配。

[owner =] 'owner'

是用于返回目录信息的表所有者。owner 的数据类型是 sysname,默认设置为 NULL。不支持通配符模式匹配。如果未指定 owner,则应用基础 DBMS 的默认表可视性规则。

在 Microsoft® SQL Server™ 中,如果当前用户拥有的表具有指定名称,则返回该表的列。如果未指定 owner 且当前用户不拥有带指定 name 的表,则该过程查找由数据库所有者拥有的带指定 name 的表。如果存在该表,则返回该表的列。

[@qualifier =] 'qualifier'

是表限定符的名称。qualifier 的数据类型为 sysname,默认设置为 NULL。多种 DBMS 产品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,该列表示数据库名。在某些产品中,该列表示表所在数据库环境的服务器名。

[@col_type =] 'col_type'

是列类型。col_type 的数据类型是 char(1),默认设置为 R。类型 R 返回优化列或列集,该列或列集通过检索列中的值,使得指定表中的任何行可以被唯一标识。列可以是专门为此目的设计的伪列,也可以是表的任何唯一索引的列。类型 V 返回指定表中的列(若有),当行中的值由任何事务更新时,该列由数据源自动更新。

[@scope =] 'scope'

是 ROWID 必需的最小作用域。scope 的数据类型是 char(1),默认设置为 T。作用域 C 指定只有当 ROWID 位于该行上时才有效。作用域 T 指定 ROWID 对事务有效。

[@nullable =] 'nullable'

表示特殊列能否接受空值。nullable 的数据类型是 char(1),默认设置为 U。O 指定特殊列不允许空值。U 指定列中可以部分为空。

[@ODBCVer =] 'ODBCVer'

是当前所使用的 ODBC 版本。ODBCVer 的数据类型是 int(4),默认设置为 2,表示 ODBC 2.0 版。有关 ODBC 2.0 版和 ODBC 3.0 版之间的差异的更多信息,请参见 ODBC 3.0 版的 ODBC SQLSpecialColumns 规范。

返回代码值

结果集
列名 数据类型 描述
SCOPE smallint 行 ID 的实际作用域。可以是 0、1 或 2。SQL Server 始终返回 0。该字段始终返回值。

0 = SQL_SCOPE_CURROW。行 ID 只有位于该行上时才能保证有效。如果某行由另一个事务更新或删除,则后来使用该行 ID 重新选择时可能无法返回该行。

1 = SQL_SCOPE_TRANSACTION。行 ID 在当前事务的持续时间内保证有效。

2 = SQL_SCOPE_SESSION。行 ID 在会话(跨事务边界)的持续时间内保证有效。

COLUMN_NAME sysname 返回的 table 中每列的列名。该字段始终返回值。
DATA_TYPE smallint ODBC SQL 数据类型。
TYPE_NAME sysname 数据源相关的数据类型名称,如 charvarcharmoneytext
PRECISION Int 数据源上的列精度。该字段始终返回值。
LENGTH Int 数据源中以二进制形式存在的数据类型要求的长度(以字节为单位),例如,10 代表 char(10),4 代表 integer,2 代表 smallint
SCALE smallint 数据源上列的小数位数。对于小数位数不适用的数据类型返回NULL。
PSEUDO_COLUMN smallint 表示列是否是伪列。SQL Server 始终返回 2:
0 = SQL_PC_UNKNOWN
1 = SQL_PC_PSEUDO
2 = SQL_PC_NOT_PSEUDO

注释

在 ODBC 中,sp_special_columns SQLSpecialColumns 等效。返回的结果按 SCOPE 排序。

权限

执行权限默认授予 public 角色。

请参见

系统存储过程