Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_Otveti_po_liksiam.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
458.04 Кб
Скачать
  1. Ограничения целостности Transact-sql

DBCC CHECKCONSTRAINTS (Transact-SQL)

SQL Server 2012

Проверяет целостность указанного ограничения или всех ограничений заданной таблицы в текущей базе данных.

 Синтаксические обозначения Transact-SQL

Синтаксис

DBCC CHECKCONSTRAINTS

[

    (

    table_name | table_id | constraint_name | constraint_id

    )

]

    [ WITH

    [ { ALL_CONSTRAINTS | ALL_ERRORMSGS } ]

[ , ] [ NO_INFOMSGS ]

    ]

Аргументы

table_name | table_id | constraint_name | constraint_id

Проверяемая таблица или ограничение. Если указан аргумент table_name или table_id, проверяются все включенные ограничения на данной таблице. Если указан аргумент constraint_name или constraint_id, проверяется только указанное ограничение. Если не указаны ни идентификатор таблицы, ни идентификатор ограничения, проверяются все включенные ограничения всех таблиц в текущей базе данных.

Имя ограничения однозначно определяет таблицу, к которой оно принадлежит. Дополнительные сведения см. в разделе Идентификаторы баз данных.

WITH

Позволяет задавать параметры.

ALL_CONSTRAINTS

Проверяет все включенные и отключенные ограничения таблицы, если указано имя таблицы или отмечены все таблицы. В противном случае проверяет только включенные ограничения. ALL_CONSTRAINTS не работает, если указано имя ограничения.

ALL_ERRORMSGS

Возвращает все строки, которые не соответствуют ограничениям в проверяемой таблице. По умолчанию, это первые 200 строк.

NO_INFOMSGS

Подавляет вывод всех информационных сообщений.

  1. Инструкции языка обработки данных Transact-sql

Microsoft SQL Server 2005 поддерживает ряд новых и улучшенных синтаксических конструкций, повышающих эффективность доступа к данным и их обработки.

Новые предложения и параметры DML

Предложение или параметр

Описание

Предложение OUTPUT

При выполнении инструкции INSERT, UPDATE

или DELETE возвращает вызвавшему ее

приложению вставленные, обновленные или

удаленные строки.

WITH обобщенное_табличное_выражение

Определяет временный именованный

результирующий набор (или представление),

определенный в области действия инструкции

SELECT, INSERT, UPDATE или DELETE.

Предложение .WRITE

Обеспечивает возможность выполнения

частичных обновлений и эффективного

дополнения столбцов типов varchar(max),

nvarchar(max) и varbinary(max) в

ходе обработки инструкции UPDATE.

Улучшенные DML-инструкции и предложения

Инструкция или предложение

Описание

SELECT

Поддерживает следующие новые элементы синтаксиса:

  • WITH обобщенное табличное выражение

  • выражение TOP

  • имена столбцов, имеющих определенный пользователем

тип, для выборки значений пользовательского типа.

INSERT

Поддерживает следующие новые элементы синтаксиса:

  • WITH обобщенное табличное выражение

  • выражение TOP

  • предложение OUTPUT

Поддерживает вставку значений пользовательских типов.

UPDATE

Поддерживает следующие новые элементы синтаксиса:

  • WITH обобщенное табличное выражение 

  • выражение TOP

  • предложение OUTPUT

  • имена столбцов, имеющих определенный пользователем

тип, для обновления значений пользовательского типа.

  • предложение .WRITE 

DELETE

Поддерживает следующие новые элементы синтаксиса:

  • WITH обобщенное табличное выражение 

  • выражение TOP

  • предложение OUTPUT

Предложение FOR

Поддерживает следующие новые директивы FOR XML:

  • TYPE, которая позволяет извлекать результаты запроса

как тип xml

  • XMLSCHEMA, которая позволяет запрашивать XSD-схему.

Поддерживает вложенные запросы FOR XML.

FROM

Поддерживает следующие дополнительные

элементы

синтаксиса, служащие для работы с

таблицами-источниками:

  • APPLY

  • PIVOT/UNPIVOT

  • TABLESAMPLE

  • Псевдоним столбца массовой обработки

TOP

Поддерживает использование с инструкциями

SELECT, INSERT, UPDATE и DELETE.

Кроме того, SQL Server 2005 включает ряд новых инструкций DDL. Дополнительные сведения см. в разделе Инструкции языка DDL (Transact-SQL).

SELECT (Transact-SQL)

SQL Server 2005

Извлекает строки из базы данных и позволяет делать выборку одной или нескольких строк или столбцов из одной или нескольких таблиц. Полный синтаксис инструкции SELECT сложен, однако основные предложения можно вкратце описать следующим образом:

[ WITH <common_table_expression>]

SELECT select_list [ INTO new_table ]

[ FROM table_source ] [ WHERE search_condition ]

[ GROUP BY group_by_expression ]

[ HAVING search_condition ]

[ ORDER BY order_expression [ ASC | DESC ] ]

Операторы UNION, EXCEPT и INTERSECT можно использовать между запросами, чтобы сравнить их результаты или объединить в один результирующий набор.

 Соглашения о синтаксисе в Transact-SQL

Синтаксис

SELECT statement ::=  

[WITH <common_table_expression> [,...n]]

    <query_expression>

    [ ORDER BY { order_by_expression | column_position [ ASC | DESC ] }

  [ ,...n ] ]

    [ COMPUTE

  { { AVG | COUNT | MAX | MIN | SUM } ( expression ) } [ ,...n ]

  [ BY expression [ ,...n ] ]

    ]

    [ <FOR Clause>]

    [ OPTION ( <query_hint> [ ,...n ] ) ]

<query_expression> ::=

    { <query_specification> | ( <query_expression> ) }

    [ { UNION [ ALL ] | EXCEPT | INTERSECT }

<query_specification> | ( <query_expression> ) [...n ] ]

<query_specification> ::=

SELECT [ ALL | DISTINCT ]

    [TOP expression [PERCENT] [ WITH TIES ] ]

    < select_list >

    [ INTO new_table ]

    [ FROM { <table_source> } [ ,...n ] ]

    [ WHERE <search_condition> ]

    [ GROUP BY [ ALL ] group_by_expression [ ,...n ]

                [ WITH { CUBE | ROLLUP } ]

    ]

    [ HAVING < search_condition > ]

INSERT (Transact-SQL)

SQL Server 2005

Добавляет новую строку к таблице или представлению.

 Соглашения о синтаксическом обозначении в Transact-SQL

Синтаксис

[ WITH <common_table_expression> [ ,...n ] ]

INSERT

    [ TOP ( expression ) [ PERCENT ] ]

    [ INTO]

    { <object> | rowset_function_limited

      [ WITH ( <Table_Hint_Limited> [ ...n ] ) ]

    }

{

    [ ( column_list ) ]

    [ <OUTPUT Clause> ]

    { VALUES ( { DEFAULT | NULL | expression } [ ,...n ] )

    | derived_table

    | execute_statement

    }

}

    | DEFAULT VALUES

[; ]

<object> ::=

{

    [ server_name . database_name . schema_name .

      | database_name .[ schema_name ] .

      | schema_name .

    ]

        table_or_view_name

}

Аргументы

WITH <common_table_expression>

Определяет временный именованный результирующий набор, также называемый обобщенным табличным выражением, определенным в области инструкции INSERT. Результирующий набор получается из инструкции SELECT.

Обобщенные табличные выражения также используются инструкциями SELECT, DELETE, UPDATE и CREATE VIEW. Дополнительные сведения см. в разделе WITH общее_табличное_выражение (Transact-SQL).

TOP ( expression ) [ PERCENT ]

Задает количество или процент случайных строк для вставки. Выражение expression может быть либо количеством, либо процентом строк. Строки, на которые ссылается выражение TOP, используемое с INSERT, UPDATE и DELETE, не упорядочены.

В инструкциях INSERT, UPDATE и DELETE необходимо разделять круглыми скобками аргумент expression в выражении TOP. Дополнительные сведения см. в разделе TOP (Transact-SQL).

INTO

Необязательное ключевое слово, которое можно использовать между ключевым словом INSERT и целевой таблицей.

server_name

Имя сервера (используется функцией OPENDATASOURCE как имя сервера), на котором находится таблица или представление. Если указан аргументserver_name, также необходимо указать аргументы database_name и schema_name.

database_name

Имя базы данных.

schema_name

Имя схемы, к которой принадлежит таблица или представление.

table_or view_name

Имя таблицы или представления, которые принимают данные.

Переменную table внутри своей области можно использовать как имя исходной таблицы в инструкции INSERT.

Представление, на которое ссылается аргумент table_or_view_name, должно быть обновляемым и ссылаться ровно на одну базовую таблицу в предложении FROM данного представления. Например, инструкция INSERT в многотабличном представлении должна использовать аргумент column_list, который ссылается только на столбцы из одной базовой таблицы. Дополнительные сведения об обновляемых представлениях см. в разделе CREATE VIEW (Transact-SQL).

rowset_function_limited

Либо функция OPENQUERY, либо функция OPENROWSET.

WITH ( <table_hint_limited> [... n ] )

Указывает одну или несколько табличных подсказок, разрешенных для целевой таблицы. Необходимо использовать ключевое слово WITH и круглые скобки.

Нельзя использовать подсказки READPAST, NOLOCK, и READUNCOMMITTED. Дополнительные сведения о табличных подсказках см. в разделе Табличная подсказка (Transact-SQL).

Важно!

Возможность указать подсказки HOLDLOCK, SERIALIZABLE, READCOMMITTED,

REPEATABLEREAD или UPDLOCK в

целевых таблицах инструкций INSERT будет удалена в будущих версиях SQL Server.

Эти подсказки не влияют на

производительность инструкций INSERT. Избегайте применять их в новых разработках и

запланируйте внесение

изменений в приложения, использующие их в настоящее время.

Указание подсказки TABLOCK для целевой таблицы инструкции INSERT приведет к тем же последствиям, что и указание подсказки TABLOCKX. К таблице будет применена монопольная блокировка.

( column_list )

Список из одного или нескольких столбцов, в которые нужно вставить данные. Аргумент column_list должен быть заключен в круглые скобки и разделен запятыми.

Если столбец не внесен в column_list, то компонент SQL Server 2005 Database Engine должен обеспечить значение, основанное на определении столбца; в противном случае строку нельзя будет загрузить. Компонент Database Engine автоматически задает значение для столбца, если столбец имеет следующие характеристики.

  • Имеется свойство IDENTITY. Используется следующее значение приращения для идентификатора.

  • Имеется стандартное значение. Используется стандартное значение для столбца.

  • Имеет тип данных timestamp. В этом случае используется текущее значение timestamp.

  • Неопределенное значение. Используется значение Null.

  • Вычисляемый столбец. Используется вычисленное значение.

Аргумент column_list и список VALUES необходимо использовать, когда в столбец идентификаторов вставляются явно заданные значения, а параметру SET IDENTITY_INSERT необходимо присвоить значение ON для таблицы.

Предложение OUTPUT

Возвращает вставленные строки во время операции вставки. Предложение OUTPUT не поддерживается инструкциями DML, которые ссылаются на локальные секционированные представления, распределенные секционированные представления, расположенные удаленно таблицы или инструкции INSERT, содержащие аргумент execute_statement.

VALUES

Ввод списка со значениями данных для вставки. Для каждого столбца в column_list, если этот параметр указан или присутствует в таблице, должно быть одно значение. Список значений должен быть заключен в круглые скобки.

Если значения в списке VALUES идут в порядке, отличном от порядка следования столбцов в таблице, или не для каждого столбца таблицы определено значение, то необходимо использовать аргумент column_list для явного указания столбца для хранения каждого входного значения.

DEFAULT

Указывает компоненту Database Engine необходимость принудительно загружать значения по умолчанию, определенные для столбца. Если для столбца не задано значение по умолчанию и он может содержать значение NULL, вставляется значение NULL. В столбцы с типом данных timestamp вставляется следующее значение временной метки. Значение DEFAULT недопустимо для столбца идентификаторов.

expression

Константа, переменная или выражение. В выражении не может содержаться инструкция SELECT или EXECUTE.

derived_table

Любая допустимая инструкция SELECT, возвращающая строки данных, которые загружаются в таблицу. Инструкция SELECT не может содержать обобщенное табличное выражение (CTE).

execute_statement

Любая допустимая инструкция EXECUTE, возвращающая данные с помощью инструкций SELECT или READTEXT. Инструкция SELECT не может содержать CTE-выражение.

Если аргумент execute_statement используется с инструкцией INSERT, каждый результирующий набор должен быть совместим со столбцами в таблице или списке column_list.

Аргумент execute_statement может применяться для выполнения хранимых процедур на том же сервере или на сервере, расположенном удаленно. На удаленном сервере выполняется процедура, результирующий набор возвращается на локальный сервер и загружается в таблицу на локальном сервере.

В SQL Server 2008 изменена семантика транзакций инструкций INSERT...EXECUTE, выполняемых на связанном сервере с замыканием на себя. В SQL Server 2005 этот сценарий не поддерживается и приводит к ошибкам. В SQL Server 2008 инструкция INSERT...EXECUTE может применяться к связанному серверу с замыканием на себя, когда для соединения не включен режим MARS. Если режим MARS не включен для соединения, то поведение такое же, как в SQL Server 2005.

Если аргумент execute_statement возвращает данные с инструкцией READTEXT, необходимо учитывать, что каждая инструкция READTEXT может возвращать не более 1 МБ (1024 КБ) данных. Аргумент execute_statement также может использоваться с расширенными процедурами. В этом случае он вставляет данные, возвращенные основным потоком расширенной процедуры, но выходные данные, возвращенные потоками, отличными от основного, не будут вставлены.

DEFAULT VALUES

Заполняет новую строку значениями по умолчанию, определенными для каждого столбца.

UPDATE (Transact-SQL)

SQL Server 2005

Изменяет существующие данные в таблице или представлении.

 Синтаксические обозначения в Transact-SQL

Синтаксис

[ WITH <common_table_expression> [...n] ]

UPDATE

    [ TOP ( expression ) [ PERCENT ] ]

    { <object> | rowset_function_limited

     [ WITH ( <Table_Hint_Limited> [ ...n ] ) ]

    }

    SET

        { column_name = { expression | DEFAULT | NULL }

          | { udt_column_name.{ { property_name = expression

                                | field_name = expression }

                               | method_name ( argument [ ,...n ] )

                              }

            }

          | column_name { .WRITE ( expression , @Offset , @Length ) }

          | @variable = expression

          | @variable = column = expression [ ,...n ]

        } [ ,...n ]

    [ <OUTPUT Clause> ]

    [ FROM{ <table_source> } [ ,...n ] ]

    [ WHERE { <search_condition>

            | { [ CURRENT OF

                  { { [ GLOBAL ] cursor_name }

                      | cursor_variable_name

                  }

                ]

              }

            }

    ]

    [ OPTION ( <query_hint> [ ,...n ] ) ]

[ ; ]

<object> ::=

{

    [ server_name . database_name . schema_name .

    | database_name .[ schema_name ] .

    | schema_name .

    ]

        table_or_view_name}

Аргументы

WITH <common_table_expression>

Задает временный именованный результирующий набор или представление, которые называются обобщенным табличным выражением (CTE), определяемым в пределах области действия инструкции UPDATE. Результирующий набор CTE, на который ссылается инструкция UPDATE, является производным простого запроса.

Обобщенные табличные выражения могут также использоваться с инструкциями SELECT, INSERT, DELETE и CREATE VIEW. Дополнительные сведения см. в разделе WITH общее_табличное_выражение (Transact-SQL).

TOP ( expression ) [ PERCENT ]

Указывает количество или процент строк, которые будут обновлены. expression может быть либо числом, либо процентной долей строк.

Строки, на которые ссылается выражение TOP, используемое с инструкциями INSERT, UPDATE и DELETE, не упорядочиваются.

В инструкциях INSERT, UPDATE и DELETE скобки, в которые заключено expression, необходимы. Дополнительные сведения см. в разделе TOP (Transact-SQL).

server_name

Имя сервера (с использованием имени связанного сервера или функции OPENDATASOURCE в качестве имени сервера), на котором расположена таблица или представление. Если задан аргумент server_name, то необходимо также, чтобы были указаны аргументы database_name и schema_name.

database_name

Имя базы данных.

schema_name

Имя схемы, к которой принадлежит таблица или представление.

table_or view_name

Имя таблицы или представления, из которых должны обновляться строки.

Переменная table в своей области действия может использоваться в качестве источника таблицы в инструкции UPDATE.

Представление, на которое ссылается аргумент table_or_view_name, должно быть обновляемым и ссылаться только на одну базовую таблицу в предложении FROM данного представления. Дополнительные сведения об обновляемых представлениях см. в разделе CREATE VIEW (Transact-SQL).

rowset_function_limited

Функция OPENQUERY или OPENROWSET, в зависимости от возможностей поставщика. Дополнительные сведения о возможностях, требующихся поставщику, см. в разделе Требования UPDATE и DELETE для поставщиков OLE DB.

WITH ( <Table_Hint_Limited> )

Задает одну или несколько табличных подсказок, разрешенных для целевой таблицы. Ключевое слово WITH и круглые скобки обязательны. Использование аргументов NOLOCK и READUNCOMMITTED запрещено. Сведения о табличных подсказках см. в разделе Табличная подсказка (Transact-SQL).

SET

Задает список обновляемых имен столбцов или переменных.

column_name

Столбец, содержащий обновляемые данные. Столбец с именем column_name должен существовать в table_or view_name. Столбцы идентификаторов не могут быть обновлены.

expression

Переменная, символьное значение, выражение или подзапрос выборки (заключенный в скобки), которые возвращают единственное значение. Значение, возвращаемое expression, заменяет существующее значение в column_name или @variable.

DEFAULT

Определяет, что существующее значение в столбце должно заменяться значением по умолчанию. Также может использоваться для присвоения значения NULL, если столбец не имеет значений по умолчанию и может принимать значения NULL.

udt_column_name

Столбец пользовательского типа.

property_name | field_name

Общедоступное свойство или общедоступный элемент данных пользовательского типа.

method_name ( argument [ ,... n)

Не статичный метод общего мутатора udt_column_name, принимающий один или несколько аргументов.

.WRITE ( expression, @Offset , @Length )

Указывает, что должен быть изменен раздел значения column_nameexpression заменяет в column_name @Length элементы, начиная с позиции @Offset. С этим предложением можно указывать только столбцы типа varchar(max)nvarchar(max) или varbinary(max)column_name не может иметь значения NULL и не может дополняться именем таблицы или псевдонимом таблицы.

expression — значение, которое копируется в столбец column_name. Аргумент expression должен иметь результат типа column_name или неявно приводиться к этому типу. Если для expression установлено значение NULL, аргумент @Length не учитывается, а значение в column_name усекается с позиции, на которую указывает аргумент @Offset.

Аргумент @Offset — начальная точка в значении column_name, в которую записывается значение expression. Аргумент @Offset — отсчитываемая от нуля порядковая позиция с типом данных bigint и не может быть отрицательным числом. Если аргумент @Offset имеет значение NULL, операция обновления добавляет значение expression в конец существующего значения аргумента column_name, а аргумент @Length пропускается. Если значение аргумента @Offsetбольше, чем длина значения аргумента column_name, компонент Microsoft SQL Server 2005 Database Engine возвращает ошибку. Если сумма значений @Offsetи @Length превышают длину базового значения столбца, удаление выполняется до последнего символа этого значения. Если сумма значений @Offset и LEN(expression) больше чем базовый объявленный размер, возникает ошибка.

@Length — это длина раздела в столбце, начиная с @Offset, который заменяется expression@Length имеет тип данных bigint и не может принимать отрицательных значений. Если аргумент @Length имеет значение NULL, операция обновления удаляет все данные, начиная со значения @Offset до конца значения column_name.

Дополнительные сведения см. ниже, в разделе «Примечания».

@variable

Объявленная переменная, которой присваивается значение, возвращенное expression.

SET @variable = column = expression присваивает переменной то же значение, что и столбцу. Это отличается от предложения SET @variable = columncolumn =expression, присваивающего переменной значение столбца до обновления.

<OUTPUT_Clause>

Возвращает обновленные данные или основанные на них выражения в рамках выполнения операции UPDATE. Предложение OUTPUT не поддерживается ни в одной инструкции DML, целью которой являются удаленные таблицы или представления. Дополнительные сведения см. в разделе Предложение OUTPUT (Transact-SQL).

FROM <источник_таблицы>

Определяет, что для определения критериев операции обновления используется таблица, представление или производный источник таблицы. Дополнительные сведения см. в разделе FROM (Transact-SQL).

Если обновляемый объект тот же самый, что и объект в предложении FROM, и в предложении FROM имеется только одна ссылка на этот объект, псевдоним объекта указывать необязательно. Если обновляемый объект встречается в предложении FROM несколько раз, одна и только одна ссылка на этот объект не должна указывать псевдоним таблицы. Все остальные ссылки на объект в предложении FROM должны включать псевдоним объекта.

Представление с триггером INSTEAD OF UPDATE не может быть целью инструкции UPDATE с предложением FROM.

WHERE

Задает условия, ограничивающие обновляемые строки. Существует два вида обновлений, в зависимости от используемой формы предложения WHERE.

  • В поисковых обновлениях задается условие поиска строк, предназначенных к удалению.

  • В позиционных обновлениях используется предложение CURRENT OF для указания курсора. Операция обновления выполняется в текущем положении курсора.

<search_condition>

Задает условие, которому должны удовлетворять обновляемые строки. Условие поиска может также представлять собой условие, на котором основано соединение. Количество предикатов, которое может содержать условие поиска, не ограничено. Дополнительные сведения о предикатах и условиях поиска см. в разделе Условие поиска (Transact-SQL).

CURRENT OF

Определяет, что обновление выполняется в текущей позиции указанного курсора.

GLOBAL

Указывает, что аргумент cursor_name ссылается на глобальный курсор.

cursor_name

Имя открытого курсора, из которого должна производиться выборка. Если существует как глобальный, так и локальный курсор с именем cursor_name, этот аргумент ссылается на глобальный курсор, если указан аргумент GLOBAL, в противном случае он ссылается на локальный курсор. Курсор должен позволять производить обновления.

cursor_variable_name

Имя переменной курсора. Аргумент cursor_variable_name должен ссылаться на курсор, разрешающий обновления.

OPTION ( <подсказка_запроса> [ ,... n ] )

Определяет, что для настройки способа, которым компонент Database Engine обрабатывает инструкцию, используются подсказки оптимизатора. Дополнительные сведения см. в разделе Подсказка в запросе (Transact-SQL).

DELETE (Transact-SQL)

SQL Server 2005

Удаляет строки из таблиц и представлений.

 Синтаксические обозначения в Transact-SQL

Синтаксис

[ WITH <common_table_expression> [ ,...n ] ]

DELETE

    [ TOP ( expression ) [ PERCENT ] ]

    [ FROM ]

        { table_name [ WITH ( <table_hint_limited> [ ...n ] ) ]

        | view_name

        | rowset_function_limited

        | table_valued_function

    }

    [ <OUTPUT Clause> ]

    [ FROM <table_source> [ ,...n ] ]

    [ WHERE { <search_condition>

            | { [ CURRENT OF

                   { { [ GLOBAL ] cursor_name }

                       | cursor_variable_name

                   }

                ]

              }

            }

    ]

    [ OPTION ( <Query Hint> [ ,...n ] ) ]

[; ]

<object> ::=

{

    [ server_name.database_name.schema_name.

      | database_name. [ schema_name ] .

      | schema_name.

    ]

        table_or_view_name

}

Аргументы

WITH <common_table_expression>

Задает временный именованный результирующий набор, также называемый обобщенным табличным выражением, который определяется в области действия инструкции DELETE. Результирующий набор получается из инструкции SELECT.

Обобщенные табличные выражения также можно использовать в инструкциях SELECT, INSERT, UPDATE и CREATE VIEW. Дополнительные сведения см. в разделе WITH общее_табличное_выражение (Transact-SQL).

TOP ( expression ) [ PERCENT ]

Задает число или процент случайных строк для удаления. Выражение expression может быть либо числом, либо процентом строк. Строки, на которые ссылается выражение TOP, используемое с инструкциями INSERT, UPDATE и DELETE, не упорядочиваются.

Разделение круглыми скобками выражения expression в выражении TOP требуется в инструкциях INSERT, UPDATE и DELETE. Дополнительные сведения см. в разделе TOP (Transact-SQL).

FROM

Необязательное ключевое слово, которое можно использовать между ключевым словом DELETE и целевым аргументом table_or_view_name илиrowset_function_limited.

server_name

Имя сервера (с использованием имени связанного сервера или функции OPENDATASOURCE в качестве имени сервера), на котором расположена таблица или представление. Если аргумент server_name указывается, аргументы database_name и schema_name обязательны.

database_name

Имя базы данных.

schema_name

Имя схемы, которой принадлежит таблица или представление.

table

Имя таблицы, из которой удаляются строки.

Переменную table в пределах ее области действия также можно использовать в качестве источника таблицы в инструкции DELETE.

WITH ( <table_hint_limited> [... n)

Задает одну или несколько табличных подсказок, разрешенных для целевой таблицы. Ключевое слово WITH и круглые скобки обязательны. Использование ключевых слов NOLOCK и READUNCOMMITTED запрещено. Дополнительные сведения о табличных подсказках см. в разделе Табличная подсказка (Transact-SQL).

view_name

Имя представления, из которого удаляются строки.

Представление, на которое ссылается аргумент view_name , должно быть обновляемым и ссылаться ровно на одну базовую таблицу в предложении FROM данного представления. Дополнительные сведения об обновляемых представлениях см. в разделе CREATE VIEW (Transact-SQL).

rowset_function_limited

Функция OPENQUERY или OPENROWSET в зависимости от возможностей поставщика. Дополнительные сведения о возможностях, требуемых для поставщика см. в разделе Требования UPDATE и DELETE для поставщиков OLE DB.

table_valued_function

Может быть возвращающей табличное значение функцией. Дополнительные сведения о возвращающих табличное значение функциях см. в разделеВозвращающие табличное значение пользовательские функции.

<OUTPUT_Clause>

Возвращает удаленные строки или выражения, основанные на них, как часть операции DELETE. Предложение OUTPUT не поддерживается ни в каких инструкциях DML, направленных на представления и удаленные таблицы. Дополнительные сведения см. в разделе Предложение OUTPUT (Transact-SQL).

FROM <table_source>

Задает дополнительное предложение FROM. Это расширение языка Transact-SQL для инструкции DELETE позволяет задавать данные из <table_source> и удалять соответствующие строки из таблицы в первом предложении FROM.

Это расширение, в котором задается соединение, может быть использовано вместо вложенного запроса в предложении WHERE для указания удаляемых строк.

Дополнительные сведения см. в разделе FROM (Transact-SQL).

WHERE

Указывает условия, используемые для ограничения числа удаляемых строк. Если предложение WHERE не указывается, инструкция DELETE удаляет все строки из таблицы.

Предусмотрено два вида операций удаления в соответствии с тем, что указывается в предложении WHERE.

  • Операции удаления с поиском указывают условие поиска для уточнения строк, которые будут удалены. Например, WHERE column_name = value.

  • Операции удаления по позиции используют предложение CURRENT OF для указания курсора. Удаление осуществляется в текущей позиции курсора. Эта операция может быть более точной, чем инструкция DELETE по найденному, которая использует предложение WHERE search_condition для указания удаляемых строк. Инструкция DELETE по найденному удаляет несколько строк, если условие поиска не определяет уникально одну строку.

<search_condition>

Указывает ограничивающие условия для удаляемых строк. Количество предикатов, которое может содержать условие поиска, не ограничено. Дополнительные сведения см. в разделе Условие поиска (Transact-SQL).

CURRENT OF

Указывает выполнение инструкции DELETE в текущей позиции указанного курсора.

GLOBAL

Указывает, что аргумент cursor_name ссылается на глобальный курсор.

cursor_name

Имя открытого курсора, из которого производится выборка. Если существует как глобальный, так и локальный курсор с именем cursor_name, то, когда указывается GLOBAL, этот аргумент указывает на глобальный курсор; в противном случае — на локальный курсор. Курсор должен позволять производить обновления.

cursor_variable_name

Имя переменной курсора. Переменная курсора должна содержать ссылку на курсор, обновления которого разрешены.

OPTION ( <query_hint> [ ,... n)

Ключевые слова, показывающие, что подсказки оптимизатора применяются при настройке способа обработки инструкции компонентом Database Engine. Дополнительные сведения см. в разделе Подсказка в запросе (Transact-SQL).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]