Советы по Delphi


              

При попытке выполнения такого оператора


При попытке выполнения такого оператора 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]


Содержание  Назад  Вперед