0
我有以下存儲proc給我,這是使用Web應用程序插入到下面的表中。當你點擊提交表單時,我收到以下錯誤。無法將值Null插入列打印 - 插入失敗
無法將NULL值插入'Printed'列中,表'CAB.dbo.Participants';列不允許有空值。 INSERT失敗。 該語句已終止。
我已經查明proc和已經得到以下
declare @p20 int
set @p20=NULL
exec sp_AddParticipant @P_FirstName='John ',@P_MI='m',@P_LastName='French',@P_Company='',@P_Email='[email protected]',@P_Address='10045 Hampton Rd',@P_City='Sacramento ',@P_State='ca',@P_Zip='95864',@P_Phone='917-349-9845',@Gift=0,@P_Age='',@P_Education='',@P_Income='',@P_Commmethod='Email',@CC_Ty pe='Visa',@CC_Name='John French',@CC_Number='4822820089199876',@CC_Expires='12/19',@[email protected] output
select @p20
go
Any help would be much appreciated.
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_AddParticipant]
@P_FirstName varchar(20),
@P_MI varchar(5)= Null,
@P_LastName varchar(30),
@P_Company varchar(80)= Null,
@P_Email varchar(50),
@P_Address varchar(40),
@P_City varchar(40),
@P_State varchar(15),
@P_Zip varchar(10),
@P_Phone varchar(25),
@Gift bit,
@GiftType varchar(10) = Null,
@G_FirstName varchar(20)= Null,
@G_MI varchar(5)= Null,
@G_LastName varchar(30)= Null,
@G_Company varchar(80)= Null,
@G_Email varchar(50)= Null,
@G_Address varchar(40)= Null,
@G_City varchar(40)= Null,
@G_State varchar(15)= Null,
@G_Zip varchar(10)= Null,
@G_Phone varchar(25)= Null,
@P_Age varchar(20)= Null,
@P_Education varchar(20)= Null,
@P_Income varchar(20)= Null,
@P_Commmethod varchar(10)= Null,
@CC_Type varchar(25),
@CC_Name varchar(50),
@CC_Number varchar(16),
@CC_Expires varchar(7),
@ID bigint OUTPUT
AS
INSERT INTO Participants
(P_FIRSTNAME,P_MI,P_LASTNAME,P_COMPANY,P_EMAIL,P_ADDRESS,P_CITY,P_STATE,P _ZIP,P_PHONE,GIFT,GIFTTYPE,
G_FIRSTNAME,G_MI,G_LASTNAME,G_COMPANY,G_EMAIL,G_ADDRESS,G_CITY,G_STATE,G_ ZIP,G_PHONE,P_AGE,P_EDUCATION,
P_INCOME,P_COMMMETHOD,CC_TYPE,CC_NAME,CC_NUMBER,CC_EXPIRES)
VALUES
(@P_FIRSTNAME,@P_MI,@P_LASTNAME,@P_COMPANY,@P_EMAIL,@P_ADDRESS,@P_CITY,@P _STATE,@P_ZIP,@P_PHONE,@GIFT,@GIFTTYPE,
@G_FIRSTNAME,@G_MI,@G_LASTNAME,@G_COMPANY,@G_EMAIL,@G_ADDRESS,@G_CITY,@G_ STATE,@G_ZIP,@G_PHONE,@P_AGE,@P_EDUCATION,
@P_INCOME,@P_COMMMETHOD,@CC_TYPE,@CC_NAME,@CC_NUMBER,@CC_EXPIRES)
SELECT @ID = @@IDENTITY
那麼你的插入語句中沒有'Printed'列,所以它會嘗試插入null,因爲該列不允許空值,所以會出現該錯誤。這裏還有什麼要解釋的? – DavidG