Nó không chắc trở thành một phần của tiêu chuẩn SQL, với tiện ích đáng ngờ của nó (mặc dù tôi chưa kiểm tra cụ thể).
Điều có khả năng xảy ra nhất là nó đang loại bỏ phần không phải cuối cùng của đặc tả cột vì nó không cần thiết. Bạn đã rõ ràng cho biết bạn đang chèn vào bảng nào, với insert into SomeTable
một phần của lệnh và đó là bảng sẽ được sử dụng.
Những gì bạn có vẻ đã làm ở đây là tìm cách thực thi các lệnh SQL khó đọc hơn nhưng không có lợi thế thực sự. Trong mạch đó, nó xuất hiện tương tự như mã C:
int nine = 9;
int eight = 8;
xyzzy = xyzzy + nine - eight;
có thể viết tốt hơn là xyzzy++;
:-)
Tôi sẽ không dựa vào nó chút nào, có thể bởi vì nó không phải là tiêu chuẩn nhưng hầu hết là bởi vì nó làm cho việc bảo trì khó hơn thay vì dễ dàng hơn, và bởi vì tôi biết các DBA trên khắp thế giới sẽ theo dõi tôi và đánh tôi chết bằng các hướng dẫn sử dụng DB2 của IBM, sự lựa chọn vũ khí của họ do kích thước khổng lồ và khả năng nghiền nát hộp sọ:-)
Tôi có được kiểm tra không cụ thể, ít nhất là đối với ISO 9075-2:2003 quy định ngôn ngữ SQL03.
Phần 14.8
của tiêu chuẩn đó bao gồm insert
và có vẻ như mệnh đề sau có thể có liên quan:
Nếu không dành nhiều thời gian (tài liệu đó dài 1.332 trang và sẽ mất vài ngày để hoàn thành chính xác), tôi nghi ngờ bạn có thể tranh luận rằng chuyên mục có thể được xác định chỉ bằng cách sử dụng phần cuối cùng của tên cột (bằng cách xóa tất cả chủ sở hữu / người dùng / thông số lược đồ khỏi nó).
Đặc biệt là vì nó chỉ xuất hiện một bảng mục tiêu là có thể (mặc dù các chế độ xem có thể cập nhật vượt qua ranh giới bảng):
<insertion target> ::= <table name>
Cảnh báo công bằng:Tôi đã không kiểm tra các lần lặp lại sau này của tiêu chuẩn nên mọi thứ có thể đã thay đổi. Nhưng tôi cho rằng điều đó khó xảy ra vì dường như không có trường hợp sử dụng thực sự nào để có tính năng này.