Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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
Asp.net 一个或多个行包含违反SQL脚本中非null、唯一或外键约束的值_Asp.net_Sql Server - Fatal编程技术网

Asp.net 一个或多个行包含违反SQL脚本中非null、唯一或外键约束的值

Asp.net 一个或多个行包含违反SQL脚本中非null、唯一或外键约束的值,asp.net,sql-server,Asp.net,Sql Server,我需要帮助 我只是想知道为什么会发生这个错误。下面是有关的脚本 SELECT loc.ID ,loc.LocCode ,loc.LocName ,st.StateName ,reg.RegionName ,ctry.CountryName ,ISNULL(CONVERT(DATE, loc.UpdatedDate), CONVERT(DATE,loc.CreatedDate)) AS [ModifiedDate] ,stf.Name

我需要帮助

我只是想知道为什么会发生这个错误。下面是有关的脚本

    SELECT loc.ID
    ,loc.LocCode
    ,loc.LocName
    ,st.StateName
    ,reg.RegionName
    ,ctry.CountryName
    ,ISNULL(CONVERT(DATE, loc.UpdatedDate), CONVERT(DATE,loc.CreatedDate)) AS [ModifiedDate]
    ,stf.Name AS [ModifiedBy]
FROM Spkr_Country AS ctry WITH (NOLOCK)
INNER JOIN Spkr_Location AS loc WITH (NOLOCK) ON ctry.ID = loc.CountryID
INNER JOIN Spkr_State AS st WITH (NOLOCK) ON loc.StateID = st.ID
INNER JOIN Spkr_Region AS reg WITH (NOLOCK) ON loc.RegionID = reg.ID
INNER JOIN Staff AS stf ON ISNULL(loc.UpdatedBy, loc.CreatedBy) = stf.StaffId
WHERE (loc.IsActive = 1)
    AND (
        (@LocCode = '')
        OR (
            @LocCode <> ''
            AND loc.LocCode LIKE @LocCode + '%'
            )
        )
    AND (
        (@RegionID < 1)
        OR (
            @RegionID > 0
            AND loc.RegionID = @RegionID
            )
        )
    AND (
        (@StateID < 1)
        OR (
            @StateID > 0
            AND loc.StateID = @StateID
            )
        )
    AND (
        (@CountryID < 1)
        OR (
            @CountryID > 0
            AND loc.CountryID = @CountryID
            )
        )
选择loc.ID
,loc.LocCode
,loc.LocName
,st.StateName
,reg.RegionName
,ctry.CountryName
,ISNULL(转换(日期,loc.updateDate),转换(日期,loc.CreatedDate))为[ModifiedDate]
,stf.Name为[ModifiedBy]
来自Spkr_国家/地区,作为运输中心(NOLOCK)
将Spkr_位置作为loc与ctry.ID=loc.CountryID上的(NOLOCK)进行内部连接
内部将Spkr_状态作为st与loc.StateID=st.ID上的(NOLOCK)连接
内部将Spkr_区域作为reg与loc.RegionID=reg.ID上的(NOLOCK)连接
在ISNULL上以stf的形式加入内部员工(loc.UpdatedBy,loc.CreatedBy)=stf.StaffId
其中(loc.IsActive=1)
及(
(@LocCode='')
或(
@LocCode“”
和loc.LocCode,如@LocCode+'%'
)
)
及(
(@RegionID<1)
或(
@RegionID>0
loc.RegionID=@RegionID
)
)
及(
(@StateID<1)
或(
@StateID>0
loc.StateID=@StateID
)
)
及(
(@CountryID<1)
或(
@CountryID>0
loc.CountryID=@CountryID
)
)
错误可能发生在这里
内部加入Staff AS stf ON ISNULL(loc.UpdatedBy,loc.CreatedBy)=stf.StaffId
我想要的要求是,如果
loc.UpdatedBy
为null,它将使用
loc.CreatedBy
列。然而,当我使用它时,它产生了上面提到的错误

在数据库中,
loc.CreatedBy
不为空,而
loc.UpdatedBy
可为空

我通过运行脚本检查了它,但它工作正常


我该怎么办?我的代码怎么了?请帮助。

我将内部连接条件更改为这行代码。
内部人员在合并时作为stf加入(loc.UpdatedBy,loc.Createdby)=stf.StaffId


然而,我仍然不知道为什么它不起作用?在这种情况下使用
COALESCE()
ISNULL()
有什么区别?

一行或多行包含违反非null、唯一或外键约束的值我想知道基于脚本发生此错误的原因以及如何修改此错误。