SQL Server:DEFAULT int值

时间:2018-03-23 17:45:09

标签: c# sql sql-server

我有一个SQL问题 - 这是我的表:

INSERT INTO Compte ([Compte_Id], [Compte_Nom], [Compte_Prenom],
                    [Compte_Date_Naissance], [Compte_Rue], 
                    [Compte_Telephone], [Compte_Mail], [Compte_Pseudo],
                    [Compte_MotDePasse], [Compte_Compte_Ogrine],[Compte_Argent_reel])
VALUES ('ui', 'ui', '1996-06-25', 'ui', '09', 'ui', 'ui', 'ui')

我想在我的C#程序中使用这个表,所以我的插件看起来像这样:

getAttributes : function(jsonParams){
                //my code
},

但如果我把它放在我的SQL Server上,它就不起作用了!

错误讯息:

  

Msg 109,Level 15,State 1,Line 2
  INSERT语句中的列多于VALUES子句中指定的值。

     

VALUES子句中的值数必须与INSERT语句中指定的列数相匹配。

4 个答案:

答案 0 :(得分:4)

'INSERT语句更多列,而不是VALUES子句中指定的值

如果指定了列名,那么必须为该列提供 值。

'fix'是删除要分配默认值的列名称;这包括任何标识列。

INSERT INTO Compte (
  -- Don't include this, identity column! [Compte_Id]
   [Compte_Nom]
  ,[Compte_Prenom]
  ,[Compte_Date_Naissance]
  ,[Compte_Rue]
  ,[Compte_Telephone]
  ,[Compte_Mail]
  ,[Compte_Pseudo]
  ,[Compte_MotDePasse])
  -- Don't specify, assume default value! ,[Compte_Compte_Ogrine]
  -- Don't specify, assume default value! ,[Compte_Argent_reel])
  VALUES
  ('ui','ui','1996-06-25','ui','09','ui','ui','ui')

答案 1 :(得分:2)

正如消息所示"有更多列" ,您的插入中有11列,但只有8列。

请勿在{{1​​}}语句中包含identity列(Compte_Id)

答案 2 :(得分:1)

INSERT中的列数必须与VALUES中的列数相匹配。 你在INSERT中有11列,在VALUES中有8列。

此外,Compte_Id是一个标识列,因此您不必在insert语句中为其指定值,因为SQL Server将自动为其设置值。

在查询中删除[Compte_Id],[Compte_Compte_Ogrine]和[Compte_Argent_reel]。

答案 3 :(得分:0)

现在它正常工作。

INSERT INTO Compte ([Compte_Nom], [Compte_Prenom],
                [Compte_Date_Naissance], [Compte_Rue], 
                [Compte_Telephone], [Compte_Mail], [Compte_Pseudo],
                [Compte_MotDePasse])
VALUES ('ui', 'ui', '1996-06-25', 'ui', '09', 'ui', 'ui', 'ui')`