Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Stored procedures SQL Server 2008 R2插入带有标识字段的存储过程语法_Stored Procedures_Sql Server 2008 R2_Identity Column - Fatal编程技术网

Stored procedures SQL Server 2008 R2插入带有标识字段的存储过程语法

Stored procedures SQL Server 2008 R2插入带有标识字段的存储过程语法,stored-procedures,sql-server-2008-r2,identity-column,Stored Procedures,Sql Server 2008 R2,Identity Column,下午好 我已经编写了一个非常基本的存储过程,将用于将QuestionText和QuestionStatus插入QuestionID int主键设置为具有标识的Questions表中 语法如下: CREATE PROCEDURE InsertNewQuestion -- Add the parameters for the stored procedure here @QuestionText varchar(200), @QuestionStatus bit AS BEGIN -- SET N

下午好

我已经编写了一个非常基本的存储过程,将用于将QuestionText和QuestionStatus插入QuestionID int主键设置为具有标识的Questions表中

语法如下:

CREATE PROCEDURE InsertNewQuestion 
-- Add the parameters for the stored procedure here
@QuestionText varchar(200), @QuestionStatus bit
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
INSERT into Questions
(QuestionText,QuestionStatus) 
Values
(@QuestionText),(@QuestionStatus)
END
GO
执行存储过程时,我收到以下错误:

INSERT语句中的列比值中指定的值多 条款values子句中的值数必须与列数匹配 在INSERT语句中指定

正确插入记录并允许QuestionID在每次插入时自动递增的正确语法是什么

非常感谢您的帮助和指导


更新的存储过程语法

删除QuestionID和@Identity+值应为@QuestionText、@QuestionStatus

INSERT into Questions
(QuestionText,QuestionStatus) 
Values
(@QuestionText,@QuestionStatus)
SQL Server知道QuestionID是一个标识字段,并将递增它….:-

如果需要返回插入的标识,请在SP上创建一个out参数,并通过调用SCOPE_Identity获取该参数


设置@QuestionID=SCOPE\u IDENTITY

删除QuestionID和@IDENTITY+值应为@QuestionText、@QuestionStatus

INSERT into Questions
(QuestionText,QuestionStatus) 
Values
(@QuestionText,@QuestionStatus)
SQL Server知道QuestionID是一个标识字段,并将递增它….:-

如果需要返回插入的标识,请在SP上创建一个out参数,并通过调用SCOPE_Identity获取该参数


设置@QuestionID=SCOPE\u IDENTITY

您不指定IDENTITY列,并且这些值不应该在它们自己的括号中

INSERT into Questions
(QuestionText,QuestionStatus) 
Values
(@QuestionText, @QuestionStatus)

您不指定标识列,并且这些值不应位于它们自己的括号中

INSERT into Questions
(QuestionText,QuestionStatus) 
Values
(@QuestionText, @QuestionStatus)
i、 e.未指定标识字段

CREATE PROCEDURE SPWITHPARAMETER_AND_RETURN_VALUE
  (
    @EMPID INT,
    @IDVAL INT,   
    @RETURNVALUE INT =0 OUT
  )
  AS 
    DECLARE @COUNT INT
  BEGIN
  SELECT @COUNT=COUNT(*) FROM JOINTABLE WHERE EMPID=@EMPID AND IDVAL=@IDVAL
    IF(@COUNT >0)
      BEGIN

           SET @RETURNVALUE = 1;
                             PRINT @RETURNVALUE    
            RETURN @RETURNVALUE
              END
         ELSE
       BEGIN
            SET @RETURNVALUE = 1;
                              PRINT @RETURNVALUE
            RETURN @RETURNVALUE
                        END
  END

i、 e.没有指定标识字段。

您的值行仍在关闭每个参数周围的参数。它们都应该在一个由逗号分隔的偏执命题中。Values@QuestionText,@questionstatus您的值行仍在关闭每个参数周围的参数。它们都应该在一个由逗号分隔的偏执命题中。值@QuestionText、@QuestionStatus
CREATE PROCEDURE SPWITHPARAMETER_AND_RETURN_VALUE
  (
    @EMPID INT,
    @IDVAL INT,   
    @RETURNVALUE INT =0 OUT
  )
  AS 
    DECLARE @COUNT INT
  BEGIN
  SELECT @COUNT=COUNT(*) FROM JOINTABLE WHERE EMPID=@EMPID AND IDVAL=@IDVAL
    IF(@COUNT >0)
      BEGIN

           SET @RETURNVALUE = 1;
                             PRINT @RETURNVALUE    
            RETURN @RETURNVALUE
              END
         ELSE
       BEGIN
            SET @RETURNVALUE = 1;
                              PRINT @RETURNVALUE
            RETURN @RETURNVALUE
                        END
  END