存储过程更新

时间:2016-02-20 11:40:19

标签: asp.net stored-procedures sql-server-2005

我想插入那些版本为null的值,而对于版本为null的我没有状态。

我从datatable获取所有数据到过程表类型,然后如何检查传入数据是否为null?

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[uspInsertFilterData]
     @sqlDataTable SqlTableType READONLY
AS
BEGIN
    IF (@sqlDataTable.Version IS NOT NULL OR @sqlDataTable.Version != '')
    BEGIN
        INSERT INTO FilterCombination (Version, HotFix, Resourcetype, Language)
            (SELECT 
                 t1.Product, t1.Version, t1.HotFix, t1.Resourcetype, 
                 t1.Language 
             FROM
                 @sqlDataTable t1, Product_Version_Mapping t2  
             WHERE
                 t1.Product = t2.Product 
                 AND t1.Version = t2.Version  
                 AND t2.Status = 'Correct')
    END
    ELSE
    BEGIN
        INSERT INTO FilterCombination (Product, Version, HotFix, Resourcetype, Language)   
            (SELECT 
                 t1.Product, t1.Version, t1.HotFix, t1.Resourcetype, t1.Language 
             FROM
                 @sqlDataTable t1, Product_Version_Mapping t2  
             WHERE
                 t1.Product = t2.Product);
    END
END

此查询无效。请帮忙

1 个答案:

答案 0 :(得分:0)

要检查空值,可以使用NULLIF,如此...

IF NULLIF(@PreviousStartDate, '') IS NULL

请参阅以下链接。

Check if a parameter is null or empty in a stored procedure