【问题标题】:No solution to a warning when executing a stored procedure? "Warning: Null value is eliminated by an aggregate or other SET operation"执行存储过程时没有解决警告的方法? “警告:空值被聚合或其他 SET 操作消除”
【发布时间】:2013-11-27 21:41:57
【问题描述】:

我收到警告“空值已被聚合或其他 SET 操作消除”。我找不到问题的根源。代码如下,我基本上想做的就是在一个表中插入值,基于33个存储过程的执行(执行的编码是一样的,所以我下面只举几个例子)。我在调用的 SP 中查找了错误,但没有发现任何错误,因为它们都根据测试文件返回了预期的结果。

对解决方案有什么建议吗?

代码:

    ALTER PROCEDURE [dbo].[SKL_SaveAdminKontroll_result]

    AS
    BEGIN
        SET NOCOUNT ON;

    declare @SQL VarChar(max)
    set @SQL = '

    DELETE FROM [dbo].[SKL_AdminKontroll_result]

    DECLARE @kommuner VARCHAR(300)
    DECLARE @landsting VARCHAR(300)
    DECLARE @tableName VARCHAR(100) 

    SET @kommuner=''select id from [StatistikinlamningAdminSKL].[dbo].[Enhet] WHERE [EnhetsTyp] = 1''
    SET @landsting=''select id from [StatistikinlamningAdminSKL].[dbo].[Enhet] WHERE [EnhetsTyp] = 2''
    SET @tableName=''GR_PS09_1''

        INSERT INTO [dbo].[SKL_AdminKontroll_result] ([Värde],[Typ],Enhetsid,Adminkontroll,[Datum för hämtat värde]) 
            EXEC dbo.SKL_admin_KN_aform @tableName, @kommuner
        INSERT INTO [dbo].[SKL_AdminKontroll_result] ([Värde],[Typ],Enhetsid,Adminkontroll,[Datum för hämtat värde]) 
            EXEC dbo.SKL_admin_KN_annan_AID @tableName, @kommuner
        INSERT INTO [dbo].[SKL_AdminKontroll_result] ([Värde],[Typ],Enhetsid,Adminkontroll,[Datum för hämtat värde]) 
            EXEC dbo.SKL_admin_KN_ansvar @tableName, @kommuner
        INSERT INTO [dbo].[SKL_AdminKontroll_result] ([Värde],[Typ],Enhetsid,Adminkontroll,[Datum för hämtat värde])    
            EXEC dbo.SKL_admin_LT_aform @tableName, @landsting
        INSERT INTO [dbo].[SKL_AdminKontroll_result] ([Värde],[Typ],Enhetsid,Adminkontroll,[Datum för hämtat värde])    
            EXEC dbo.SKL_admin_LT_annan_AID @tableName, @landsting
        INSERT INTO [dbo].[SKL_AdminKontroll_result] ([Värde],[Typ],Enhetsid,Adminkontroll,[Datum för hämtat värde])    
            EXEC dbo.SKL_admin_LT_ansvar @tableName, @landsting
    '

        EXEC (@SQL)
    END

最好的问候,

汉尼斯

【问题讨论】:

    标签: sql stored-procedures insert execute declare


    【解决方案1】:

    这只是一个警告,您的一个存储过程正在执行聚合,它让您知道 NULL 值未在聚合中捕获。

    您必须调查您的存储过程以找出聚合发生的位置,但如果您获得预期的结果,那么就没有问题。

    您可以根据需要隐藏警告:

    SET ANSI_WARNINGS OFF 
    GO
    

    抑制警告可能是一种不好的做法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 2011-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-29
      相关资源
      最近更新 更多