2009-09-01 9 views

Répondre

34

Cela fonctionne très bien dans mon cas. Comment essayez-vous d'obtenir ces lignes dans la base de données? SQL Server Mgmt Studio? Requête SQL de l'application .NET?

Exécution dans Visual Studio dans la fenêtre « Nouvelle requête », je reçois:

La déclaration VALEURS DÉFAUT construction SQL ou n'est pas pris en charge.

==> OK, donc Visual Studio ne peut pas le gérer - ce n'est pas la faute de SQL Server, mais de Visual Studio. Utilisez le vrai SQL Management Studio à la place - cela fonctionne très bien là-bas!

En utilisant ADO.NET fonctionne aussi comme un charme:

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

semble être une limitation de VS - ne pas utiliser VS pour un travail sérieux DB :-) Marc

+0

Essayez de l'exécuter à partir du concepteur de studio visuel (requête). obtenez un message d'erreur. Je ne me souviens pas du texte exact maintenant. –

+1

Merci, cela fonctionne comme un charme dans l'application. Je ne peux pas faire confiance à VS pour tout faire ... Évidemment. –

-3

Au lieu d'essayer compter sur une syntaxe sur les « valeurs par défaut » comme le mot-clé, laissez vous aider à moteur avec ça ... que diriez-vous d'essayer explicitement de définir l'une des valeurs, telles que

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

Donc, même si vous ne préparez qu'un seul champ, le nouvel enregistrement du moteur natif DEVRAIT remplir le REST d'entre eux avec leurs valeurs par défaut respectives.

+0

La table a seulement 1 colonne, et c'est l'identité. – Misko

Questions connexes