Tôi hy vọng câu hỏi này giá vé tốt hơn một chút so với Create a table without columns tương tự. Vâng, tôi đang hỏi về điều gì đó sẽ tấn công nhất là học tập vô nghĩa.Tôi có thể chọn 0 cột trong SQL Server không?
Thật dễ dàng để tạo kết quả SELECT với 0 hàng (nhưng có cột), ví dụ: SELECT a = 1 WHERE 1 = 0
.
Có thể tạo kết quả SELECT bằng 0 cột (nhưng có hàng) không? ví dụ: một cái gì đó như SELECT NO COLUMNS FROM Foo
. (Đây không phải là T-SQL hợp lệ.)
Tôi bắt gặp điều này vì tôi muốn chèn nhiều hàng mà không chỉ định bất kỳ dữ liệu cột nào cho bất kỳ dữ liệu nào trong số chúng. ví dụ. (SQL Server 2005)
CREATE TABLE Bar (id INT NOT NULL IDENTITY PRIMARY KEY)
INSERT INTO Bar SELECT NO COLUMNS FROM Foo
-- Invalid column name 'NO'.
-- An explicit value for the identity column in table 'Bar' can only be specified when a column list is used and IDENTITY_INSERT is ON.
Có thể chèn một hàng duy nhất mà không chỉ định bất kỳ dữ liệu cột nào, ví dụ: INSERT INTO Foo DEFAULT VALUES
.
Người ta có thể truy vấn để đếm số hàng (không truy xuất dữ liệu cột thực tế từ bảng), ví dụ: SELECT COUNT(*) FROM Foo
. (Nhưng đó tập kết quả, tất nhiên, có một cột.)
tôi đã cố gắng những thứ như
INSERT INTO Bar() SELECT * FROM Foo
-- Parameters supplied for object 'Bar' which is not a function.
-- If the parameters are intended as a table hint, a WITH keyword is required.
và
INSERT INTO Bar DEFAULT VALUES SELECT * FROM Foo
-- which is a standalone INSERT statement followed by a standalone SELECT statement.
tôi có thể làm những gì tôi cần phải làm một cách khác nhau, nhưng sự thiếu nhất quán trong việc hỗ trợ cho các trường hợp thoái hóa làm tôi ngạc nhiên.
Tôi đọc qua các phần có liên quan của BOL và không thấy bất kỳ điều gì. Tôi cũng ngạc nhiên khi không tìm được gì thông qua Google.
Tất cả những gì bạn cần làm là tạo cơ sở dữ liệu mà không cần tạo cơ sở dữ liệu. Phần còn lại là khá dễ dàng. –
"sự thiếu nhất quán trong việc hỗ trợ cho các trường hợp thoái hóa"? Nó có vẻ hoàn toàn phù hợp - cột phải có mặt. Bạn có thực sự có nghĩa là "không có khả năng hỗ trợ các trường hợp cụ thể của bạn"? –
Tôi sẽ không gọi đây là "học tập vô nghĩa" - "điên" sẽ phù hợp hơn. –