我想插入那些版本为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
此查询无效。请帮忙
答案 0 :(得分:0)
要检查空值,可以使用NULLIF,如此...
IF NULLIF(@PreviousStartDate, '') IS NULL
请参阅以下链接。