Sql server 无法在列中插入值NULL,但错误消息中的值与我的代码无关

Sql server 无法在列中插入值NULL,但错误消息中的值与我的代码无关,sql-server,vb.net,stored-procedures,sql-insert,Sql Server,Vb.net,Stored Procedures,Sql Insert,我有一个VB.NET程序,它调用SQL Server中的存储过程,将数据插入表中。运行此代码时,我收到以下错误消息: Msg 515,16级,状态2,程序USPADD赞助商,第19行[批次起始行406] 无法将值NULL插入表“dbSQL1.dbo.TGolfers”的列“intGenderID”;列不允许空值。插入失败 问题是存储过程中既没有引用intGenderID也没有引用TGolfers 这是我的存储过程代码: CREATE PROCEDURE uspAddSponsor --@

我有一个VB.NET程序,它调用SQL Server中的存储过程,将数据插入表中。运行此代码时,我收到以下错误消息:

Msg 515,16级,状态2,程序USPADD赞助商,第19行[批次起始行406]
无法将值NULL插入表“dbSQL1.dbo.TGolfers”的列“intGenderID”;列不允许空值。插入失败

问题是存储过程中既没有引用
intGenderID
也没有引用
TGolfers

这是我的存储过程代码:

CREATE PROCEDURE uspAddSponsor
    --@intGolferID              AS INTEGER OUTPUT
    @strFirstName AS VARCHAR(255),
    @strLastName AS VARCHAR(255),
    @strStreetAddress AS VARCHAR(255),
    @strCity AS VARCHAR(255),
    @strState AS VARCHAR(255),
    @strZip AS VARCHAR(255),
    @strPhoneNumber AS VARCHAR(255),
    @strEmail AS VARCHAR(255)
AS
    SET XACT_ABORT ON

BEGIN TRANSACTION

    INSERT INTO TSponsors (strFirstName, strLastName, strStreetAddress, strCity, strState, strZip, strPhoneNumber, strEmail)
    VALUES (@strFirstName, @strLastName, @strStreetAddress, @strCity, @strState, @strZip, @strPhoneNumber, @strEmail)

    COMMIT TRANSACTION
GO
以下是用于调用存储过程的代码:

EXECUTE uspAddSponsor 'Joe', 'Johnson', '420 Main St', 'Ashton Park', 'IN', '46225', '5136656969', 'jjohnson@gmail.com' 
这是棘手的部分。运行INSERT语句本身不会出现问题。但是,执行具有完全相同的
INSERT
语句的存储过程会导致上述错误。我真的不知道发生了什么事

没有外键链接tgolfer和tsponsor。TSponsors甚至没有intGenderID列。我不知道是什么原因造成的


谢谢你的帮助

这就是解决问题的方法,尽管我不确定为什么会出现错误。我仍然有用于创建DB的DB脚本以及其中的所有内容,因此我重新运行脚本以重置数据库,问题就消失了。

查找触发器,根据调用上下文的不同,某些逻辑的行为可能会有所不同。您是否尝试在SSMS中执行存储过程?一种可能是您有两个同名但架构不同的SP。创建/调用SP时,最好指定模式,例如
EXECUTE dbo.uspaddshandor…
此处是否使用同义词?当前数据库未设置为您假定的数据库?