Ini tidak mungkin untuk menjadi bagian dari standar SQL, mengingat utilitasnya yang meragukan (meskipun saya belum memeriksanya secara spesifik).
Apa yang kemungkinan besar terjadi adalah membuang bagian non-final dari spesifikasi kolom karena berlebihan. Anda memiliki secara eksplisit menyatakan tabel apa yang Anda masukkan, dengan insert into SomeTable
bagian dari perintah, dan itu tabel yang akan digunakan.
Apa yang tampaknya telah Anda lakukan di sini adalah menemukan cara untuk mengeksekusi perintah SQL yang kurang dapat dibaca tetapi tidak memiliki keuntungan nyata. Dalam nada itu, tampaknya mirip dengan kode C:
int nine = 9;
int eight = 8;
xyzzy = xyzzy + nine - eight;
yang mungkin lebih baik ditulis sebagai xyzzy++;
:-)
Saya tidak akan mengandalkannya sama sekali, mungkin karena tidak standar tapi kebanyakan karena itu membuat perawatan lebih sulit daripada lebih mudah, dan karena saya tahu DBA di seluruh dunia akan melacak saya dan memukuli saya sampai mati dengan manual IBM DB2, pilihan senjata mereka karena ukuran yang besar dan kemampuan menghancurkan tengkorak :-)
Saya memiliki diperiksa secara tidak spesifik, setidaknya untuk ISO 9075-2:2003 yang menentukan bahasa SQL03.
Bagian 14.8
dari standar itu mencakup insert
pernyataan dan tampaknya klausa berikut mungkin relevan:
Tanpa menghabiskan banyak waktu (dokumen itu memiliki panjang 1.332 halaman dan akan memakan waktu beberapa hari untuk dicerna dengan baik), saya kira Anda dapat berargumen bahwa kolom bisa diidentifikasi hanya dengan menggunakan bagian akhir dari nama kolom (dengan menghapus semua spesifikasi pemilik/pengguna/skema darinya).
Terutama karena tampaknya hanya satu tabel target yang mungkin (walaupun tampilan yang dapat diperbarui melintasi batas tabel):
<insertion target> ::= <table name>
Peringatan yang adil:Saya belum memeriksa iterasi standar selanjutnya sehingga semuanya mungkin telah berubah. Tetapi saya menganggap itu tidak mungkin karena tampaknya tidak ada kasus penggunaan nyata untuk memiliki fitur ini.