【发布时间】:2016-02-20 11:40:18
【问题描述】:
我想插入那些版本也为 null 并且版本为 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
此查询无效。请帮忙
【问题讨论】:
-
很难理解你想要什么。还请扩展“不工作”。这并没有告诉我们任何事情。
-
您没有具体说明您的问题,但这是可疑的:
@sqlDataTable.Version is NOT NULL or @sqlDataTable.Version != ''。我认为您需要AND而不是OR。 -
此外,第一个插入列出了您的
INSERT INTO表名中的 四 列,但您在SELECT中提供了 五 列。 ...
标签: asp.net stored-procedures sql-server-2005