Помечает запись на удаление.
![]() |
---|
Записи, отмеченные для удаления физически не удаляются из таблицы до применения команды PACK . Вы можете отменить (снять выделение) удаление записей, используя команду RECALL . Для подробной информации, см. PACK Command и RECALL Command . |
DELETE [Target] FROM [FORCE] Table_List [[, Table_List ...] | [JOIN [ Table_List]]] |
Параметры
- DELETE [ Target ]
- Определяет целевую таблицу, курсор, таблицу или псевдоним курсора, или файл для операции удаления. Если FROM определяет больше чем одну таблицу, Вы должны включить параметр Target . Target может иметь следующие синтаксисы:
- [ DatabaseName !] TableName
DatabaseName ! определяет имя базы данных, содержащей таблицу, если таблица находится в нетекущей базе данных. Если таблица находится в нетекущей базе данных, Вы должны включить имя базы данных. Используйте восклицательный знак (!) как разделитель сразу после имени базы данных и перед именем таблицы.
TableName определяет имя таблицы для операции удаления.
- Alias
Alias определяет псевдоним, который соответствует таблице в предложении FROM или курсору в текущей сессии данных для операции удаления.
- FileName
FileName определяет имя файла для операции удаления.
- [ DatabaseName !] TableName
- FROM [FORCE] Table_List [[, Table_List ...] | [JOIN [ Table_List ]]]
- Определяет одну или более таблиц, содержащих данные для операции удаления. Предложение FROM имеет тот же самый синтаксис как в команде SQL SELECT если бы не следующие ограничения:
- Целевая таблица или курсор не могут быть включены в соединение OUTER как вторичная таблица или курсор.
- Должна иметься возможность оценить все другие операции JOIN перед выполнением операции JOIN на целевой таблице.
- Целевой курсор не может быть результатом подзапроса.
Обратите внимание:
Если FORCE опущен, Visual FoxPro пытается оптимизировать операцию удаления. Однако, операция удаления может быть выполнена быстрее применением ключевого слова FORCE для отключения оптимизации удаления Visual FoxPro. - [ DatabaseName !] Table [[AS] Local_Alias ]
DatabaseName ! определяет имя базы данных, содержащей таблицу, если таблица находится в нетекущей базе данных. Если таблица находится в нетекущей базе данных, Вы должны включить имя базы данных. Используйте восклицательный знак (!) как разделитель немедленно после имени базы данных и перед именем таблицы.
Table определяет имя таблицы или курсора, из которых Вы хотите извлечь данные. Если нет открытых таблиц, Visual FoxPro отображает диалоговое окно Open, так что Вы можете определить местонахождение файла. После того, как таблица открывается, она остается открытой и после завершения запроса.
Local_Alias определяет временное имя для таблицы, указанной в Table . Если Вы определяете локальный псевдоним, Вы должны использовать этот локальный псевдоним вместо имени таблицы в любом месте инструкции DELETE . Псевдоним может представлять таблицу или курсор.
JOIN обеспечивает возможность определить одну или более вторичных таблиц. Нет никакого жестко заданного предела количества таблиц, псевдонимов, или предложений JOIN в инструкции DELETE .
- ( Subquery ) AS Subquery_Alias
Subquery определяет инструкцию SELECT в пределах другой инструкции SELECT . Для подробной информации о подзапросах в инструкции SELECT см. SELECT - SQL Command - FROM Clause .
- Целевая таблица или курсор не могут быть включены в соединение OUTER как вторичная таблица или курсор.
- WHERE FilterCondition1 [AND | OR FilterCondition2 ...]
- Определяет одно или более условий фильтра для удаляемых записей. Нет никаких ограничений по количеству условий фильтра в предложении WHERE . Для обращения значение логического выражения, используйте оператор NOT . Чтобы проверять пустое поле, используйте функцию EMPTY( ) . Для подробной информации, см. EMPTY( ) Function .
Замечания
Если команда SET DELETED установлена в ON , записи, отмеченные для удаления игнорируются всеми командами, которые содержат scope. Для подробной информации, см. SET DELETED Command .
Чтобы определять количество модифицированных записей, используйте значение системной переменной _TALLY немедленно после выполнения команды SQL DELETE . Для подробной информации, см. _TALLY System Variable .
![]() |
---|
При маркировке на удаление нескольких записей таблицы, открытой для разделяемого доступа, SQL DELETE использует блокировку записей, в отличие от команды DELETE . Это уменьшает конфликты записей в многопользовательских ситуациях, но может уменьшить скорость выполнения. Для максимальной скорости выполнения, откройте таблицу для монопольного использования или применяйте функцию FLOCK( ) для блокировки таблицы. Для подробной информации, см. DELETE Command и FLOCK( ) Function . |
Пример 1
Описание
Следующий пример использует команду OPEN DATABASE , чтобы открыть тестовую базу данных Visual FoxPro TestData.dbc. Команда USE открывает таблицу "Клиенты" в TestData.dbc. Инструкция SQL DELETE помечает те записи на удаление, в которых поле Country содержит "USA". Команда CLEAR очищает главное окно Visual FoxPro. Команда LIST выводит все записи, отмеченные для удаления. После применения команды LIST , если будет вызвана команда PACK , отмеченные записи будут удалены.
Команда RECALL ALL снимает выделение всех записей, помеченных на удаление. Команда COUNT проверяет количество записей, помеченных на удаление, подсчитывая их. WAIT WINDOW выводит то количество записей, которые были помечены на удаление.
Код
![]() | |
---|---|
CLOSE DATABASES |
Комментарии
Для подробной информации, см. OPEN DATABASE Command , USE Command , LIST Commands , CLEAR Commands , COUNT Command , and WAIT Command .
Пример 2
Описание
Следующий код показывает коррелированное удаление, в котором записи курсора MyProducts помечаются на удаление в зависимости от значения поля Discontinued курсора MSRPList. Предложение WHERE определяет критерий соответствия записей и условие сравнения для того, чтобы пометить записи.
Код
![]() | |
---|---|
CLOSE DATABASES ALL |
Комментарии
Для подробной информации и демонстрации другого примера, см. SQL Language Improvements .
See Also
Other Resources
INSERT - SQL CommandUPDATE - SQL Command
SQL Commands and Functions
Commands
Language Reference