- •Семантическое моделирование данных: er-диаграммы
- •Реляционная модель данных: домены и отношения Общая характеристика реляционной модели данных
- •Типы данных – множество значений, множество операций
- •Простые типы данных
- •Структурированные типы данных
- •Ссылочные типы данных
- •Типы данных, используемые в реляционной модели
- •Отношения, атрибуты, кортежи отношения Определения и примеры
- •Первая нормальная форма
- •Свойства отношений
- •Реляционная модель данных: целостность
- •Целостность в реляционной модели данных
- •Реляционная модель данных: реляционная алгебра
- •Ограничения на операции
- •Соединение
- •Деление
- •Манипулирование реляционными данными
- •Реляционная модель данных: реляционное исчисление кортежей Реляционное исчисление
- •Исчисление кортежей
- •Реляционная алгебра и реляционное исчисление
- •Проектирование реляционных баз данных на основе принципов нормализации: функциональные зависимости
- •Проектирование реляционных баз данных на основе принципов нормализации: 1nf, 2nf, 3nf, bcnf Нормальная форма
- •Роль нормализации в проектировании реляционных баз данных
- •Нормальные формы
- •Первая нормальная форма (1nf)
- •Типы данных Transact-sql
- •Типы данных
- •Преобразования типа Transact-sql Преобразование типов данных (компонент Database Engine)
- •Скалярные выражения Transact-sql
- •Логические выражения Transact-sql Логические операторы (Transact-sql)
- •Табличные выражения Transact-sql Табличные выражения
- •7.2.1. Предложение from
- •7.2.1.1. Соединённые таблицы
- •7.2.1.2. Псевдонимы таблиц и колонок
- •7.2.1.3. Подзапросы
- •7.2.1.4. Табличные функции
- •7.2.2. Предолжение where
- •7.2.3. Предложения group by и having
- •7.2.4. Обработка оконных функций
- •Обобщенные табличные выражения Transact-sql Применение обобщенных табличных выражений
- •With обобщенное_табличное_выражение (Transact-sql)
- •Рекомендации по созданию и использованию обобщенных табличных выражений
- •Рекомендации по созданию и использованию обобщенных табличных выражений
- •Рекомендации по созданию и использованию рекурсивных отв
- •Инструкции языка управления потоком Transact-sql Язык управления потоком (Transact-sql)
- •Сценарии и пакеты Transact-sql Сценарии языка Transact-sql
- •Инструкции языка описания данных Transact-sql Инструкции языка описания данных ddl (Transact-sql)
- •Инструкции alter (Transact-sql)
- •Инструкции create (Transact-sql)
- •Инструкции drop (Transact-sql)
- •Ограничения целостности Transact-sql
- •Инструкции языка обработки данных Transact-sql
- •Предложение for (Transact-sql)
- •Инструкции языка контроля доступа к данным Transact-sql
- •Хранимые процедуры Transact-sql Хранимые процедуры (компонент Database Engine)
- •Функции Transact-sql Основные сведения о пользовательских функциях
- •Триггеры Transact-sql Триггеры dml
- •Курсоры Transact-sql Курсоры
- •Использование простого курсора и синтаксиса
- •Индексы Transact-sql Индексы
- •Вторичный индекс path типа данных xml
- •Вторичный индекс value типа данных xml
- •Вторичный индекс property
- •Управление транзакциями в sql Server Инструкции транзакций (Transact-sql)
- •Журналирование в sql Server Журнал транзакций (sql Server)
- •Просмотр журнала ошибок sql Server
- •Управление безопасностью в sql Server
- •Массовый импорт и экспорт данных в sql Server Массовый импорт и экспорт данных (sql Server)
- •Методы массового импорта и экспорта данных
- •Файлы форматирования
- •Метаданные в sql Server Метаданные (службы Master Data Services)
- •Распределенные запросы и распределенные транзакции в sql Server Распределенные запросы
- •Распределенные транзакции Transact-sql
- •Распределенные запросы и распределенные транзакции
Предложение for (Transact-sql)
SQL Server 2005
Предложение FOR используется для задания параметра BROWSE или XML. Параметры BROWSE и XML не связаны друг с другом.
Соглашения о синтаксисе в Transact-SQL
Синтаксис
[ FOR { BROWSE | <XML> } ]
<XML> ::=
XML
{
{ RAW [ ( 'ElementName' ) ] | AUTO }
[
<CommonDirectives>
[ , { XMLDATA | XMLSCHEMA [ ( 'TargetNameSpaceURI' ) ] } ]
[ , ELEMENTS [ XSINIL | ABSENT ]
]
| EXPLICIT
[
<CommonDirectives>
[ , XMLDATA ]
]
| PATH [ ( 'ElementName' ) ]
[
<CommonDirectives>
[ , ELEMENTS [ XSINIL | ABSENT ] ]
]
}
<CommonDirectives> ::=
[ , BINARY BASE64 ]
[ , TYPE ]
[ , ROOT [ ( 'RootName' ) ] ]
Аргументы
BROWSE
Активирует возможность обновления данных во время их просмотра с помощью курсора в режиме обзора DB-Library. Таблицу можно просмотреть внутри приложения, если в таблице содержится столбец timestamp, если таблице присвоен уникальный индекс или если в конце инструкции SELECT, отсылаемой экземпляру SQL Server, имеется параметр FOR BROWSE.
Примечание. |
Нельзя использовать синтаксис <lock_hint> HOLDLOCK для инструкции SELECT, включающей в себя параметр FOR BROWSE. |
Примечание. |
Если ключевые столбцы уникального индекса таблицы могут принимать неопределенные значения, а таблица находится внутри внешнего соединения, индексы в режиме обзора не поддерживаются. |
Параметр FOR BROWSE не может быть использован в инструкциях SELECT, соединенных оператором UNION.
XML
Задает возврат результатов запроса в виде XML-документа. Должен быть задан один из следующих режимов XML: RAW, AUTO, EXPLICIT. Дополнительные сведения об XML-данных и Analysis Services см. в разделе Создание XML с помощью предложения FOR XML.
RAW [ ('ElementName') ]
Получает результат запроса и преобразует каждую строку результирующего набора в элемент XML, для которого в качестве тега используется общий идентификатор <row />. Дополнительно можно задать имя для элемента строки. Для результирующего выхода в формате XML в качестве элементов, создаваемых для каждой строки, используются определенные ElementName . Дополнительные сведения см. в разделах Использование режима RAW иРасширения режима RAW.
AUTO
Возвращает результаты запроса в виде простого вложенного дерева XML. Каждая таблица предложения FROM, для которой в предложении SELECT приведен хотя бы один столбец, отображается как элемент XML. Столбцы, перечисленные в предложении SELECT, сопоставлены с соответствующими атрибутами элемента. Дополнительные сведения см. в разделах Использование режима AUTO и Расширения режима AUTO.
EXPLICIT
Задает явное определение формы результирующего XML-дерева. При использовании данного режима запросы должны записываться таким образом, чтобы дополнительные сведения о вложениях могли быть заданы явно. Дополнительные сведения см. в разделах Применение режима EXPLICIT и Расширения режима EXPLICIT.
XMLDATA
Возвращает встроенную XDR-схему, не добавляя корневой элемент к результату. При задании параметра XMLDATA XDR-схема добавляется к документу.
XMLSCHEMA [ ('TargetNameSpaceURI') ]
Возвращает встроенную XSD-схему. При задании указанной директивы, возвращающей заданное пространство имен схемы, дополнительно можно задать URI целевого пространства имен. Дополнительные сведения см. в разделе Создание встроенных XSD-схем.
ELEMENTS
Задает возврат столбцов в виде вложенных элементов. В противном случае столбцы будут сопоставлены с XML-атрибутами. Данный параметр поддерживается только в режимах RAW, AUTO и PATH. Дополнительные сведения см. в разделе Расширения режима RAW.
XSINIL
Задает создание элемента с атрибутом xsi:nil, установленного в значение True, для столбцов со значениями NULL. Данный параметр может быть указан только в директиве ELEMENTS. Дополнительные сведения см. в разделе Создание элементов для значений NULL с помощью параметра XSINIL.
ABSENT
Указывает, что соответствующие XML-элементы для столбцов со значениями NULL к XML-результату не добавляются. Указывайте данный параметр только с директивой ELEMENTS.
PATH [ ('ElementName') ]
Создает упаковщик элементов <строки> для каждой строки в результирующем наборе. Для упаковщика элементов <строки> можно дополнительно задать имя элемента. При задании пустой строки, например FOR XML PATH ('') ), упаковщик элементов не создается. Использование директивы PATH дает более простой способ написания запросов, чем написание запросов с помощью директивы EXPLICIT. Дополнительные сведения см. в разделе Использование режима PATH.
BINARY BASE64
Задает возврат двоичных данных запросом в двоичном зашифрованном формате base64. При извлечении двоичных данных с использованием режимов RAW и EXPLICIT необходимо указывать этот параметр. В режиме AUTO это указывается по умолчанию.
TYPE
Задает следующий формат выдаваемых запросом данных: тип xml. Дополнительные сведения см. в разделе Директива TYPE в запросах FOR XML.
ROOT [ ('RootName') ]
Задает добавление единичного элемента высшего уровня к результирующему XML-документу. Дополнительно можно указать имя корневого элемента, который необходимо сформировать. Если имя корневого элемента не задано, то добавляется <корневой> элемент по умолчанию.
FROM (Transact-SQL)
SQL Server 2005
Указывает таблицы, представления, производные таблицы и соединяемые таблицы, которые используются в инструкциях DELETE, SELECT и UPDATE. В инструкции SELECT требуется предложение FROM, за исключением тех случаев, когда список выбора содержит только константы, переменные и арифметические выражения (без имен столбцов).
Синтаксические обозначения в Transact-SQL
Синтаксис
[ FROM { <table_source> } [ ,...n ] ]
<table_source> ::=
{
table_or_view_name [ [ AS ] table_alias ] [ <tablesample_clause> ]
[ WITH ( < table_hint > [ [ , ]...n ] ) ]
| rowset_function [ [ AS ] table_alias ]
[ ( bulk_column_alias [ ,...n ] ) ]
| user_defined_function [ [ AS ] table_alias ] [ (column_alias [ ,...n ] ) ]
| OPENXML <openxml_clause>
| derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ]
| <joined_table>
| <pivoted_table>
| <unpivoted_table>
| @variable [ [ AS ] table_alias ]
| @variable.function_call ( expression [ ,...n ] ) [ [ AS ] table_alias ] [ (column_alias [ ,...n ] ) ]
}
<tablesample_clause> ::=
TABLESAMPLE [SYSTEM] ( sample_number [ PERCENT | ROWS ] )
[ REPEATABLE ( repeat_seed ) ]
<joined_table> ::=
{
<table_source> <join_type> <table_source> ON <search_condition>
| <table_source> CROSS JOIN <table_source>
| left_table_source { CROSS | OUTER } APPLY right_table_source
| [ ( ] <joined_table> [ ) ]
}
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
<pivoted_table> ::=
table_source PIVOT <pivot_clause> table_alias
<pivot_clause> ::=
( aggregate_function ( value_column )
FOR pivot_column
IN ( <column_list> )
)
<unpivoted_table> ::=
table_source UNPIVOT <unpivot_clause> table_alias
<unpivot_clause> ::=
( value_column FOR pivot_column IN ( <column_list> ) )
<column_list> ::=
column_name [ ,...n ]
Аргументы
<table_source>
Указывает таблицу, представление или источник производной таблицы с указанием или без указания псевдонима для использования в инструкции Transact-SQL. В инструкции можно использовать до 256 источников таблиц, хотя предел изменяется в зависимости от доступной памяти и сложности других выражений в запросе. Отдельные запросы могут не поддерживать 256 источников таблиц. В качестве источника таблицы может быть указана переменная table.
-
Примечание.
Производительность выполнения запросов может снизиться из-за большого количества
таблиц, указанных в запросе. На время компиляции и оптимизации также влияют
дополнительные факторы. Они включают в себя наличие индексов и индексированных
представлений в каждом <table_source> и размер <select_list> в инструкции SELECT.
Порядок источников таблицы после ключевого слова FROM не влияет на возвращаемый результирующий набор. SQL Server 2005 возвращает ошибки, когда в предложении FROM появляются дублирующиеся имена.
table_or_view_name
Имя таблицы или представления.
Если таблица или представление существует в другой базе данных на том же самом компьютере, на котором запущен экземпляр SQL Server, следует использовать полное имя в виде база_данных.схема.имя_объекта. Если таблица или представление существует вне локального сервера, на связанном сервере следует использовать четырехчастное имя в виде связанный_сервер.каталог.схема.объект. Состоящее из четырех частей имя таблицы или представления, которое создано при помощи функции OPENDATASOURCE как серверная часть имени, также может использоваться для указания источника таблицы. Дополнительные сведения о функции см. в разделе OPENDATASOURCE (Transact-SQL).
[AS] table_alias
Псевдоним для table_source, который может использоваться как для удобства, так и для различения таблицы или представления во внутреннем соединении или во вложенном запросе. Псевдоним зачастую является сокращенным именем таблицы, использующимся для соотнесения с определенными столбцами таблиц в соединении. Если имя столбца существует более чем в одной таблице соединения, SQL Server потребует, чтобы имя столбца было уточнено именем таблицы, представления, или псевдонима. Если определен псевдоним, нельзя использовать имя таблицы.
При использовании производной таблицы, набора строк или возвращающей табличное значение функции или предложения оператора (как PIVOT или UNPIVOT) требуемый аргумент table_alias в конце предложения является соответствующим именем таблицы для всех возвращаемых столбцов, включая группирующие столбцы.
WITH (<table_hint> )
Указывает на то, что с данной таблицей и для данной инструкции оптимизатор запроса использует стратегию оптимизации или блокировки. Дополнительные сведения см. в разделе Табличная подсказка (Transact-SQL).
В SQL Server 2005 табличные подсказки, за некоторыми исключениями, поддерживаются в предложении FROM только в том случае, если подсказки определены ключевым словом WITH. Табличные подсказки также должны быть указаны в скобках.
Далее перечислены табличные подсказки, разрешенные с ключевым словом WITH и без него: NOLOCK, READUNCOMMITTED, UPDLOCK, REPEATABLEREAD, SERIALIZABLE, READCOMMITTED, FASTFIRSTROW, TABLOCK, TABLOCKX, PAGLOCK, ROWLOCK, NOWAIT, READPAST, XLOCK и NOEXPAND. Если эти табличные подсказки указываются без ключевого слова WITH, то должны указываться только подсказки. Для примера: FROM t (fastfirstrow).
Если подсказка указана с другим параметром, например (fastfirstrow, index(myindex), то она должна указываться с ключевым словом WITH, например:
FROM t WITH (fastfirstrow, index(myindex)).
Использование ключевого слова WITH с подсказками необязательно, если база данных имеет уровень совместимости 80 или ниже.
rowset_function
Указывает одну из функций набора строк, например OPENROWSET, возвращающую объект, который можно использовать вместо ссылки на таблицу. Дополнительные сведения о списке функций набора строк см. в разделе Функции наборов строк (Transact-SQL).
bulk_column_alias
Дополнительный псевдоним для замены имени столбца в результирующем наборе. Псевдонимы столбца разрешены только в инструкциях SELECT, использующих функцию OPENROWSET с параметром BULK. При использовании аргумента bulk_column_alias необходимо указать псевдоним для каждого столбца таблицы в том же порядке, что и в файле.
-
Примечание.
Данный псевдоним, если он присутствует, замещает атрибут NAME в элементах
COLUMN файла XML.
user_defined_function
Указывает возвращающую табличное значение функцию.
OPENXML <openxml_clause>
Обеспечивает представление XML-документа в виде набора строк. Дополнительные сведения см. в разделе OPENXML (Transact-SQL).
derived_table
Вложенный запрос, который извлекает строки из базы данных. Аргумент derived_table используется в качестве входной таблицы для внешнего запроса.
column_alias
Дополнительный псевдоним для замены имени столбца в результирующем наборе производной таблицы. Для каждого столбца в списке выбора следует включить по одному псевдониму столбца и заключить весь список псевдонимов столбцов в скобки.
<tablesample_clause>
Указывает, что из таблицы возвращается выборка данных. Выборка может быть приблизительной. Это предложение может быть использовано в инструкциях SELECT, UPDATE или DELETE в отношении любой первичной или соединяемой таблицы. TABLESAMPLE не может быть указано для представлений. Дополнительные сведения см. в разделе Ограничение результирующего набора с помощью предложения TABLESAMPLE.
-
Примечание.
При применении TABLESAMPLE к базам данных для перехода на версию SQL Server 2005
уровень совместимости базы данных должен быть установлен в значение 90.
SYSTEM
Зависящий от реализации метод выборки, определенный ANSI SQL. В SQL Server 2005 это единственно доступный метод выборки и он применяется по умолчанию. SYSTEM использует основанный на страницах метод выборки со случайным набором страниц, все строки которых возвращаются как подмножество выборки. Дополнительные сведения см. в разделе Ограничение результирующего набора с помощью предложения TABLESAMPLE.
sample_number
Точное или приближенное константное числовое выражение, представляющее процент или количество строк. При указании PERCENT аргумент sample_numberнеявно преобразуется в тип float; в противном случае он преобразуется в тип bigint. PERCENT является параметром по умолчанию.
PERCENT
Указывает, что из таблицы должен быть извлечен процент строк таблицы, равный значению аргумента sample_number. При указании PERCENT SQL Server возвращает приближенное значение указанного процента. При указании PERCENT аргумент sample_number должен иметь значение от 0 до 100.
ROWS
Указывает, что будет извлечено количество строк, приблизительно равное значению sample_number. При указании ROWS SQL Server возвращает приближенное значение количества указанных строк. При указании ROWS результатом выражения sample_number должно быть целочисленное значение больше нуля.
REPEATABLE
Указывает, что заданная выборка может быть возвращена снова. При указании такого же значения repeat_seed SQL Server будет возвращать то же подмножество строк до тех пор, пока не будут внесены изменения в какую-либо строку таблицы. При указании другого значения repeat_seed SQL Server скорее всего вернет другую выборку строк таблицы. Изменениями считаются следующие действия над таблицей: вставка, обновление, удаление, перестроение или дефрагментация индекса, а также восстановление или присоединение базы данных.
repeat_seed
Константное целочисленное выражение, используемое SQL Server для формирования случайного числа. Аргумент repeat_seed имеет тип bigint. Если аргументrepeat_seed не указан, SQL Server присваивает значение случайным образом. Для определенного значения аргумента repeat_seed результат выборки всегда тот же, если в таблице не было произведено никаких изменений. Результат выражения repeat_seed должен быть целочисленным значением больше нуля.
<joined_table>
Результирующий набор, полученный из двух или более таблиц. Для множественных соединений следует использовать скобки, чтобы изменить естественный порядок соединений.
<join_type>
Указывает тип операции соединения.
INNER
Указывает, что возвращаются все совпадающие пары строк. Несовпадающие строки из обеих таблиц отбрасываются. Если тип соединения не указан, этот тип задается по умолчанию.
FULL [ OUTER ]
Указывает, что в результирующий набор включаются строки как из левой, так и из правой таблицы, несоответствующие условиям соединения, а выходные столбцы, соответствующие оставшейся таблице, устанавливаются в значение NULL. Этим дополняются все строки, обычно возвращаемые при помощи INNER JOIN.
LEFT [ OUTER ]
Указывает, что все строки из левой таблицы, не соответствующие условиям соединения, включаются в результирующий набор, а выходные столбцы из оставшейся таблицы устанавливаются в значение NULL в дополнение ко всем строкам, возвращаемым внутренним соединением.
RIGHT [OUTER]
Указывает, что все строки из правой таблицы, не соответствующие условиям соединения, включаются в результирующий набор, а выходные столбцы, соответствующие оставшейся таблице, устанавливаются в значение NULL в дополнение ко всем строкам, возвращаемым внутренним соединением.
<join_hint>
Указывает, что оптимизатор запросов SQL Server использует одну подсказку по применению соединения, или алгоритм выполнения, для каждого соединения, указанного в предложении FROM. Дополнительные сведения см. в разделе Подсказка по соединению (Transact-SQL).
JOIN
Указывает, что данная операция соединения должна произойти между указанными источниками или представлениями таблицы.
ON <условие_поиска>
Задает условие, на котором основывается соединение. Условие может указывать любой предикат, хотя чаще используются столбцы и операторы сравнения, например:
SELECT p.ProductID, v.VendorID
FROM Production.Product AS p
JOIN Purchasing.ProductVendor AS v
ON (p.ProductID = v.ProductID);
Когда условие указывает столбцы, их имена и типы данных могут не совпадать; однако если типы данных не совпадают, столбцы должны быть либо совместимыми, либо иметь типы, которые SQL Server 2005 может неявно преобразовать. Если типы данных не могут быть преобразованы неявно, условие должно проводить явное преобразование типа данных при помощи функции CONVERT.
Могут существовать предикаты, использующие в предложении ON только одну из соединяемых таблиц. Такие предикаты также могут присутствовать в предложении WHERE запроса. Хотя размещение таких предикатов не оказывает влияния в случае внутренних соединений (INNER), при использовании внешних соединений (OUTER) они могут привести к другому результату. Это происходит потому, что предикаты в предложении ON применяются к таблице до соединения, в то время как предложение WHERE семантически применяется к результату соединения.
Дополнительные сведения об условиях поиска и предикатах см. в разделе Условие поиска (Transact-SQL).
CROSS JOIN
Указывает векторное произведение двух таблиц. Возвращает те же строки, что и соединение без предложения WHERE в старом режиме, не совместимом с SQL-92.
left_table_source { CROSS | OUTER } APPLY right_table_source
Указывает, что right_table_source оператора APPLY определяется для каждой строки left_table_source. Данная функциональность полезна в том случае, когдаright_table_source содержит возвращающую табличное значение функцию, которая принимает значения столбцов left_table_source в качестве одного из своих аргументов.
Вместе с APPLY должно быть указано либо CROSS либо OUTER. Если указано CROSS, то при вычислении right_table_source для определенной строкиleft_table_source не создается ни одной строки и возвращается пустой результирующий набор.
При указании OUTER для каждой строки left_table_source создается одна строка, даже когда right_table_source вычисляется для этой строки и возвращается пустой результирующий набор.
Дополнительные сведения см. в разделах «Примечания» и Использование APPLY.
left_table_source
Источник таблицы, определенный в предыдущем аргументе. Дополнительные сведения см. в разделе «Примечания».
right_table_source
Источник таблицы, определенный в предыдущем аргументе. Дополнительные сведения см. в разделе «Примечания».
table_source PIVOT <pivot_clause>
Указывает, что сведение table_source основано на pivot_column. table_source является таблицей или табличным выражением. Результатом является таблица, содержащая все столбцы table_source, кроме pivot_column и value_column. Столбцы table_source, кроме pivot_column и value_column, называются столбцами группирования оператора PIVOT.
Оператор PIVOT применяет операцию группирования к входной таблице по отношению к сгруппированным столбцам и возвращает одну строку для каждой группы. Кроме того, вывод содержит один столбец для каждого значения, указанного в column_list, который отображается в pivot_column в input_table.
Дополнительные сведения см. в разделах «Примечания» и Использование операторов PIVOT и UNPIVOT.
-
Примечание.
При применении PIVOT к базам данных при переходе на версию SQL Server 2005
уровень совместимости базы данных должен иметь значение 90.
aggregate_function
Системная или пользовательская статистическая функция. Статистическая функция должна быть инвариантной относительно нулевых значений. Инвариантная относительно нулевых значений статистическая функция при определении статистического значения не учитывает нулевые значения в группе.
Системная статистическая функция COUNT(*) недопустима.
value_column
Столбец значений оператора PIVOT. При использовании вместе с оператором UNPIVOT аргумент value_column не может быть именем существующего столбца во входном table_source.
FOR pivot_column
Столбец сведения в операторе PIVOT. Аргумент pivot_column должен иметь тип, который может быть неявно или явно преобразован в nvarchar(). Этот столбец не может иметь тип image или rowversion.
При использовании оператора UNPIVOT аргумент pivot_column является именем выходного столбца, полученного из table_source. В table_source не может быть существующего столбца с таким именем.
IN ( column_list )
В предложении PIVOT представлены все значения в аргументе pivot_column, которые станут именами столбцов выходной таблицы. В списке не могут быть указаны какие-либо имена столбцов, которые уже существуют во входном table_source, к которому применяется сведение.
В предложении UNPIVOT представлены столбцы в table_source, которые будут сведены в один столбец pivot_column.
table_alias
Псевдоним для выходной таблицы. Должен быть указан аргумент pivot_table_alias.
UNPIVOT <предложение_отмены_сведения>
Указывает, что входная таблица сведена из нескольких столбцов в column_list в один столбец под названием pivot_column.
Дополнительные сведения см. в разделах «Примечания» и Использование операторов PIVOT и UNPIVOT.
-
Примечание.
При применении UNPIVOT к базам данных, обновленным до версии SQL Server 2005,
уровень совместимости базы данных должен иметь значение 90.
TOP (Transact-SQL)
SQL Server 2005
Указывает на то, что будет возвращен только первый набор строк из результата запроса. Набор строк может быть либо числом, либо процентом. Предложение TOP может быть использовано в инструкциях SELECT, INSERT, UPDATE и DELETE.
Соглашения о синтаксическом обозначении в Transact-SQL
Синтаксис
[
TOP (expression) [PERCENT]
[ WITH TIES ]
]
Аргументы
expression
Числовое выражение, которое задает количество возвращаемых строк. Аргумент expression прямо преобразуется в значение типа float, если указан PERCENT. В противном случае преобразуется в тип bigint.
Разделение круглыми скобками в аргументе expression параметра TOP требуется в инструкциях INSERT, UPDATE и DELETE. В целях обратной совместимости использование TOP expression без скобок в инструкции SELECT поддерживается, но не рекомендуется к использованию.
Если запрос включает предложение ORDER BY, возвращаются первые expression строк или expression процентов строк, отсортированных посредством предложения ORDER BY. Если запрос не содержит предложение ORDER BY, порядок строк будет произвольным.
PERCENT
Указывает на то, что запрос возвращает только первые expression процентов строк из результирующего набора.
WITH TIES
Указывает на то, что будут возвращены дополнительные строки из основного результирующего набора с тем же значением в столбцах ORDER BY, которые появляются как последние из TOP n (PERCENT) строк. Предложение TOP...WITH TIES может быть задано только в инструкциях SELECT, и только если указано предложение ORDER BY.
-
Примечание.
Порядок возвращаемых связанных записей носит произвольный характер. На
это правило не оказывает влияние SORT BY.
Новые инструкции, имеющие отношение к компоненту Service Broker
Очередь может быть целевой сущностью инструкции SELECT, но не инструкций INSERT, UPDATE и DELETE. В SQL Server 2005 представлены следующие DML-инструкции, служащие для работы с объектами компонента Service Broker.
Инструкция |
Описание |
BEGIN DIALOG |
Начинает новый диалог между двумя службами. |
BEGIN CONVERSATION TIMER |
Запускает таймер диалога. |
END CONVERSATION |
Завершает существующий диалог. |
GET CONVERSATION GROUP |
Блокирует группу сообщений для обработки следующего сообщения, доступного в очереди. |
MOVE CONVERSATION |
Связывает существующий диалог с другой группой сообщений. |
RECEIVE |
Получает из очереди одно или более сообщений. |
SEND |
Отправляет сообщение службе. |
SQL Server 2005 также включает ряд новых инструкций DDL, служащих для работы с объектами компонента Service Broker. Дополнительные сведения см. в разделеИнструкции языка DDL (Transact-SQL).
