Nó không thực sự là một vấn đề mà tôi đang phải đối mặt. Nhưng tôi chỉ tự hỏi rằng dòng đầu tiên trong mã được viết dưới đây sẽ được xử lý như là một lỗi cú pháp của SQL Server vì dấu phẩy thêm (,) ở cuối danh sách cột. Nhưng nó chạy mã tốt. Có ai biết lý do không?Tại sao SQL Server không xử lý mã này thất thường?
CREATE TABLE #TEMP(COL1 INT,COL2 VARCHAR,)
INSERT INTO #TEMP VALUES (1,'A')
SELECT * FROM #TEMP
DROP TABLE #TEMP
tôi cho rằng đó là một thiết kế quyết định giảm sql động, khi bạn không phải bỏ qua dấu phẩy. Tương tự như tại sao LINQ cho phép một kiểu ẩn danh như vậy trong C#: 'new {a = 1, b = 2, c = 3,}'. –
Không được phép bởi [ngữ pháp] (http://msdn.microsoft.com/en-us/library/ms174979.aspx) nhưng [chủ yếu là vô hại] (https://connect.microsoft.com/SQLServer/ feedback/details/273348/trailing-comma-allowed-in-create-table) –
@Martin Smith: Điều đó phụ thuộc, nếu n trong sơ đồ bao gồm 0 hay không. Cú pháp không chứa định nghĩa (ít nhất là không tìm thấy). – Stefan