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 |
Замечания
В ODBC sp_special_columns эквивалентно SQLSpecialColumns. Возвращенные результаты сортируются по столбцу SCOPE.
Разрешения
Необходимо разрешение SELECT для схемы.
Примеры
Следующий пример возвращает данные о столбце, которые уникально идентифицируют строки в таблице HumanResources.Department.
USE AdventureWorks;
GO
EXEC sp_special_columns @table_name = 'Department'
,@table_owner = 'HumanResources';
См. также