Làm thế nào để chèn vào một bảng chỉ có một cột IDENTITY?


14

Đưa ra một bảng chỉ có một cột IDENTITY, làm thế nào để bạn chèn một hàng mới? Tôi đã thử như sau:

INSERT INTO TABLE
(Syntax error)

INSERT INTO TABLE VALUES()
(Syntax error)

INSERT INTO TABLE (Id) VALUES()
(Syntax error)

Tôi đang thử nghiệm một cái gì đó và chỉ cần cột IDENTITY. Nó không dành cho sản xuất. Mặt khác, một bảng như vậy có thể được sử dụng như một trình tạo trình tự, trong đó không cần các cột khác.

Câu trả lời:


21

Từ tài liệu :

DEFAULT VALUES
Buộc hàng mới chứa các giá trị mặc định được xác định cho mỗi cột.

Vì thế:

INSERT dbo.TABLE DEFAULT VALUES;

Ngoài ra:

  1. luôn luôn sử dụng tiền tố lược đồ
  2. luôn luôn chấm dứt các báo cáo với dấu chấm phẩy

Thật thú vị, nó dường như là một phần của SQL2003 (F222) nhưng tôi chưa bao giờ thấy cấu trúc trước đây (mặc dù có vẻ như là INSERT INTO). Bạn học được điều gì đó mới mỗi ngày :-)
Lennart

3

Một cách khác là sử dụng IDENTITY_INSERT. Bằng cách đó, bạn có thể xác định thủ công những giá trị nào bạn muốn đưa vào. Giống như vậy:

SET IDENTITY_INSERT TABLE ON ;

INSERT INTO TABLE (ID) VALUES (1), (2) ;

SET IDENTITY_INSERT TABLE OFF ;

0

đây là giải pháp

Insert into TableName Default values;
select Scope_identity();
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.