dco*_*bus 0 sql t-sql sql-server stored-procedures sql-server-2008
Run Code Online (Sandbox Code Playgroud)Msg 515, Level 16, State 2, Procedure CreateParty, Line 16 Cannot insert the value NULL into column 'Id', table 'DEVIN.dbo.Party';列不允许空值.INSERT失败.该语句已终止.
Run Code Online (Sandbox Code Playgroud)(1 row(s) affected)
我勒个去?我的桌子由
Id (Primary Key)
FirstName
LastName
Run Code Online (Sandbox Code Playgroud)
这是我的存储过程:
USE [DEVIN]
GO
/****** Object: StoredProcedure [dbo].[CreateParty] Script Date: 11/19/2010 16:59:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
ALTER PROCEDURE [dbo].[CreateParty]
@firstname varchar(50),
@lastname varchar(50)
--@emailaddress varchar(100),
--@zipcode char(5)
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO Party (FirstName, LastName)
Values (@firstname,@lastname)
END
Run Code Online (Sandbox Code Playgroud)
有人能找出为什么我会得到那个错误吗?这太烦人了......
此外,由于某种原因,SQL Management仅显示intellisense中的"Id"列.我不知道为什么...
截图:

它还没有"PK_Party"的身份吗?它会自动执行此操作..我必须遗漏一些东西......
INSERT INTO Party (FirstName, LastName)
Values (@firstname,@lastname)
Run Code Online (Sandbox Code Playgroud)
您没有为列指定值Id,因此INSERT将尝试插入默认值:
IDENTITY()列,默认值将是下一个标识DEFAULT约束的列,默认值将是约束的值NULL发布表格的精确定义,以便我们告诉您列的默认值是什么.