跳过用空值更新SQL行?

时间:2010-09-16 17:09:54

标签: sql vb.net dataset

我有一个包含多个允许NULL的列的表。如果值为“空”,我将如何编写一个允许我在更新中跳过该列的SQL查询。我应该使用布尔标志让查询知道更新该值吗?我在SELECT中做类似的事情

SELECT * FROM table WHERE (@boolFlag = 1 OR col1 = @col1Val)

但是,尝试为更新做这件事已经证明是徒劳的。理想情况下,如果为true,我可以说跳过此值,否则请更新我的20列。现在我无法传入DBNull.Value,所以我被迫插入转换为空格的“”(例如,我的nvarchar(50)有50个空格)。

我在VB.NET中使用SQL Server DB / Table和DataSet,如果重要的话,在VS2k8中构建我的查询。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

update MyTable
set MyColumn = case when @MyColumnValue = '' then null else @MyColumnValue end

以上简称:

update MyTable
set MyColumn = case when @MyColumnValue <> '' then @MyColumnValue end