Малко вероятно е да бъде част от SQL стандарта, като се има предвид неговата съмнителна полезност (въпреки че не съм проверил специално).
Това, което най-вероятно се случва, е, че изхвърля непоследната част от спецификацията на колоната, защото е излишна. Имате изрично посочи в каква таблица вмъквате, с insert into SomeTable
част от командата и това е таблицата, която ще се използва.
Това, което изглежда сте направили тук, е да намерите начин да изпълнявате SQL команди, които са по-малко четими, но нямат реално предимство. В този смисъл изглежда подобно на C кода:
int nine = 9;
int eight = 8;
xyzzy = xyzzy + nine - eight;
което може би би могло да бъде по-добре написано като xyzzy++;
:-)
Изобщо не бих разчитал на него, евентуално защото не е стандартно, но предимно защото прави поддръжката по-скоро трудна, отколкото лесна, и защото знам, че администраторите на бази данни по целия свят биха ме проследили и биха ме до смърт с ръководствата на IBM DB2, техният избор на оръжие поради обемистия размер и способностите за трошене на черепи :-)
Аз имам проверени неспецифично, поне за ISO 9075-2:2003, който диктува езика SQL03.
Раздел 14.8
на този стандарт покрива insert
и изглежда, че следната клауза може да е уместна:
Без да отделяте много време (този документ е дълъг 1332 страници и ще отнеме няколко дни, за да се усвои правилно), подозирам, че можете да спорите, че колоната може да бъдат идентифицирани само с помощта на последната част от името на колоната (чрез премахване на всички спецификации на собственик/потребител/схема от нея).
Особено след като изглежда, че е възможна само една целева таблица (независимо от актуализирани изгледи, пресичащи границите на таблицата):
<insertion target> ::= <table name>
Честно предупреждение:Не съм проверявал по-късни итерации на стандарта, така че нещата може да са се променили. Но смятам, че това е малко вероятно, тъй като изглежда няма реален случай за използване на тази функция.