2009-09-01 4 views
17

В значительной степени то же самое, что и вопрос this.Как вставить в таблицу только с одним столбцом IDENTITY (SQL Express)

Но я не могу показаться, чтобы получить эту работу с SQL Server Express в Visual Studio 2008.

Same макет таблицы, один столбец с единицей и первичного ключа.

+0

в Visual Studio? Дайте нам код, который вы используете –

ответ

34
INSERT INTO dbo.TableWithOnlyIdentity DEFAULT VALUES 

Это хорошо работает в моем случае. Как вы пытаетесь получить эти строки в базе данных? SQL Server Mgmt Studio? SQL-запрос из приложения .NET?

Запуск в Visual Studio в окне «Новый запрос», я получаю:

от значений по умолчанию SQL конструкт или оператор не поддерживается.

==> ОК, поэтому Visual Studio не может справиться с этим - это не ошибка SQL Server, а Visual Studio. Вместо этого используйте настоящую SQL Management Studio - она ​​отлично работает!

Использование ADO.NET также работает как шарм:

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(); 
    } 
} 

, кажется, ограничение VS - не использовать VS для серьезной работы БД :-) Марк

+0

Попытка запустить его из визуального дизайнера студии (запроса). получите сообщение об ошибке. Не помните точный текст сейчас. –

+1

Спасибо, это работает как шарм в приложении. Не могу доверять VS, чтобы делать все ... Очевидно. –

-3

Вместо того, чтобы пытаться полагаться на какой синтаксис около «DEFAULT VALUES» в качестве ключевого слова, дайте двигателю помочь вам с этим ... Как насчет явно пытается установить одно из значений, таких как

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

Таким образом, даже если вы используете только одно поле ONE, новая запись с помощью собственного ядра ДОЛЖНА заполнить REST из них соответствующими значениями по умолчанию.

+0

Таблица содержит только 1 столбец, и это тождество. – Misko