При попытке выполнения такого оператора
При попытке выполнения такого оператора SQL - 'DELETE from T39 T39C0 WHERE T39C0.F1LHT35=253291661' SQL-сервер ругается на недопустимый синтаксис. В чем я неправ?
Nomadic отвечает:
В данном случае, видимо, T39C0 расценивается как псевдоним. Hо стандартом SQL-92 такое запрещено в DELETE.
Цитата собственно из этого стандарта (сборник из delete и names and identifiers, определение identifier пропущено, просто набор <simple latin letter> | <digit>, начинается с буквы):
Format <delete statement: positioned>::= delete from <table name> where current of <cursor name>
<table name> ::= <qualified name> | <qualified local name> <qualified name> ::= [<shema name><period>] [<qualified identifier>] <qualified identifier> ::=<identifier> <shema name>::=[<catalog name><period>]<unqualified shema name> <unqualified shema name>::=<identifier> <catalog name>::=<identifier> <qualified local name>::= MODULE <period><local table name> <local table name>::=<qualified identifier>
Стандартом запрещено вот такое
select test.a, p_test.a from test p_test;
вот это не по стандарту, хотя Microsoft SQL Server такое ест.
[001286]
Содержание Назад Вперед