2016-11-10 32 views
0

Webアプリケーションを使用して以下の表に挿入するために使用される、以下のストアドプロシージャがあります。私が次のエラーを取得しているフォームで送信を押すと。Null値を列に挿入できません - 挿入は失敗します。

カラム 'Printed'、テーブル 'CAB.dbo.Participants'に値NULLを挿入できません。列はNULLを許可しません。 INSERTは失敗します。 ステートメントが終了しました。

私はPROCをトレースしているし、おそらくPrintedフィールドがNOT NULL制約があり、デフォルト値が設定されていないテーブルに新しいフィールドで、次の

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 
+2

あなたはinsert文に 'Printed'カラムを持っていないので、nullを挿入しようとします。そのカラムはnullを許さないので、そのエラーが出ます。ここで何を説明するのですか? – DavidG

答えて

0

を頂いております。このプロシージャは、そのフィールドにデータを挿入しようとしていないようで、挿入することができないため、挿入が失敗します。NULL

テーブルの最近の変更を確認し、そのフィールドに正しい値を挿入する手順を変更する方法を検討してください。

関連する問題