Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mengapa awalan yang dipisahkan titik diabaikan dalam daftar kolom untuk pernyataan INSERT?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perintah Bersyarat SQL Server Oleh

  2. Kesalahan koneksi SQL intermiten yang aneh, perbaikan saat reboot, kembali setelah 3-5 hari (ASP.NET)

  3. Di mana menetapkan nilai datetime UTC dalam aplikasi n-tier:Presentation Layer, Domain, atau Database?

  4. Bagaimana menjalankan program dari SQL?

  5. Kerangka pengujian unit untuk database