2009-09-01 10 views

Trả lời

34
INSERT INTO dbo.TableWithOnlyIdentity DEFAULT VALUES 

Điều này chỉ hoạt động tốt trong trường hợp của tôi. Làm thế nào bạn đang cố gắng để có được những hàng vào cơ sở dữ liệu? SQL Server Mgmt Studio? Truy vấn SQL từ ứng dụng .NET?

Chạy bên trong Visual Studio trong cửa sổ "New Query", tôi nhận được:

Các giá trị mặc định SQL xây dựng hoặc tuyên bố không được hỗ trợ.

==> OK, vì vậy Visual Studio không thể xử lý được - đó không phải lỗi của SQL Server, nhưng của Visual Studio. Sử dụng SQL Management Studio thực sự thay vào đó - nó hoạt động tốt ở đó!

Sử dụng ADO.NET cũng hoạt động như một nét duyên dáng:

using(SqlConnection _con = new SqlConnection("server=(local); 
          database=test;integrated security=SSPI;")) 
{ 
    using(SqlCommand _cmd = new SqlCommand 
      ("INSERT INTO dbo.TableWithOnlyIdentity DEFAULT VALUES", _con)) 
    { 
     _con.Open(); 
     _cmd.ExecuteNonQuery(); 
     _con.Close(); 
    } 
} 

Có vẻ là một hạn chế của VS - không sử dụng VS cho công việc DB nghiêm trọng :-) Marc

+0

Đang cố gắng chạy mã từ trình thiết kế studio trực quan (truy vấn). nhận được một thông báo lỗi. Không nhớ chính xác văn bản ngay bây giờ. –

+1

Cảm ơn, điều này hoạt động như một nét duyên dáng trong ứng dụng. Không thể tin tưởng VS làm mọi thứ ... Rõ ràng. –

-3

Thay vì cố gắng dựa vào một số cú pháp về "DEFAULT VALUES" làm từ khóa, hãy để động cơ giúp bạn với điều đó ... Cách rõ ràng khi cố gắng đặt MỘT trong các giá trị, chẳng hạn như

insert into YourTable (PickOneField) values ("whatever") 

Vì vậy, mặc dù bạn chỉ đang chuẩn bị MỘT trường, bản ghi mới của công cụ gốc NÊN cư trú REST của chúng với các giá trị mặc định tương ứng của chúng.

+0

Bảng chỉ có 1 cột và đó là danh tính. – Misko