sp_special_columns (Transact-SQL)
Возвращает оптимальный набор столбцов, уникально идентифицирующих строку таблицы. Также возвращает столбцы, автоматически обновляемые, когда любое значение в строке обновляется транзакцией.
Синтаксис
sp_special_columns [ @table_name = ] 'table_name'
[ , [ @table_owner = ] 'table_owner' ]
[ , [ @qualifier = ] 'qualifier' ]
[ , [ @col_type = ] 'col_type' ]
[ , [ @scope = ] 'scope' ]
[ , [ @nullable = ] 'nullable' ]
[ , [ @ODBCVer = ] 'ODBCVer' ]
[ ; ]
Аргументы
[ @table_name =] 'table_name'
Имя таблицы, используемой для возврата данных о каталоге. Аргумент name имеет тип sysname и не имеет значения по умолчанию. Сопоставление по шаблону не поддерживается.[ @table_owner =] 'table_owner'
Владелец таблицы, используемой для возврата данных о каталоге. Аргумент owner имеет тип sysname и значение по умолчанию NULL. Сопоставление по шаблону не поддерживается. Если аргумент owner не задан, то применяются правила видимости таблиц по умолчанию базовой СУБД.В SQL Server, если текущий пользователь является владельцем таблицы с указанным именем, возвращаются ее столбцы. Если аргумент owner не указан, а текущий пользователь не является владельцем таблицы с указанным аргументом name, данная процедура производит поиск таблицы с указанным аргументом name, владельцем которой является владелец базы данных. Если таблица существует, возвращаются ее столбцы.
[ @qualifier =] 'qualifier'
Имя квалификатора таблицы. Аргумент qualifier имеет тип sysname и значение по умолчанию NULL. Некоторые СУБД поддерживают трехкомпонентные имена таблиц (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'
Определяет, допускают ли специальные столбцы значение NULL. Аргумент nullable имеет тип char(1) и значение по умолчанию U. O указывает специальные столбцы, которые не допускают значения NULL. U указывает столбцы, частично допускающие значения NULL.[ @ODBCVer =] 'ODBCVer'
Используемая версия ODBC. Аргумент ODBCVer имеет тип int(4) и значение 2 по умолчанию. Это значение соответствует версии ODBC 2.0. Дополнительные сведения о различиях между ODBC 2.0 и ODBC 3.0 см. в спецификации ODBC SQLSpecialColumns для ODBC 3.0.
Значения кода возврата
Нет
Результирующие наборы
Имя столбца |
Тип данных |
Описание |
---|---|---|
SCOPE |
smallint |
Фактическая область идентификатора строки. Может быть 0, 1 или 2. SQL Server всегда возвращает значение 0. Это поле всегда возвращает значение. 0 = SQL_SCOPE_CURROW. Идентификатор строки гарантированно действителен до тех пор, пока он расположен на этой строке. Проведенная позднее повторная выборка с использованием идентификатора строки может не вернуть строку, если строка была обновлена или удалена другой транзакцией. 1 = SQL_SCOPE_TRANSACTION. Идентификатор строки гарантированно действителен на протяжении текущей транзакции. 2 = SQL_SCOPE_SESSION. Идентификатор строки гарантированно действителен на протяжении сеанса (несмотря на границы транзакций). |
COLUMN_NAME |
sysname |
Возвращается имя столбца для каждого столбца table. Это поле всегда возвращает значение. |
DATA_TYPE |
smallint |
Тип данных ODBC SQL. |
TYPE_NAME |
sysname |
Имя типа данных зависимых от источника данных; например char, varchar, money или text. |
PRECISION |
Int |
Точность столбца на источнике данных. Это поле всегда возвращает значение. |
LENGTH |
Int |
Длина в байтах, требуемая для типа данных в двоичной форме в источнике данных; например 10 для char(10), 4 для integer и 2 для smallint. |
SCALE |
smallint |
Масштаб столбца в источнике данных. Для тех типов данных, для которых масштаб не применим, возвращается значение NULL. |
PSEUDO_COLUMN |
smallint |
Указывает, является ли столбец псевдостолбцом. SQL Server всегда возвращает 1. 0 = SQL_PC_UNKNOWN 1 = SQL_PC_NOT_PSEUDO 2 = SQL_PC_PSEUDO |
Замечания
Хранимая процедура sp_special_columns эквивалентна ODBC-функции SQLSpecialColumns. Возвращенные результаты сортируются по столбцу SCOPE.
Разрешения
Необходимо разрешение SELECT для схемы.
Примеры
Следующий пример возвращает данные о столбце, которые уникально идентифицируют строки в таблице HumanResources.Department.
USE AdventureWorks2008R2;
GO
EXEC sp_special_columns @table_name = 'Department'
,@table_owner = 'HumanResources';
См. также