在存储过程中将查询值设置为NULL

时间:2015-05-21 21:07:08

标签: sql sql-server sql-server-2008

我试图在存储过程中将查询值设置为NULL:

查询应为:

UPDATE [dbo].[tablesym] SET PAYMSTTS=0,SWP=0,IDRM=NULL

所以,在存储过程中,我有:

SELECT @query21= 'UPDATE [dbo].[tablesym] SET PAYMSTTS=0,SWP=0,IDRM='+NULL

但是,该列不会更新。既没有抛出任何错误,也没有在tablesym中进行任何更新。

3 个答案:

答案 0 :(得分:2)

SELECT @query21= 'UPDATE [dbo].[tablesym] SET PAYMSTTS=0,SWP=0,IDRM='+NULL

select @query21 -- will result in NULL

就像你向无穷大添加任何东西一样简单,结果总是无穷大。

这就是你需要的

SELECT @query21= 'UPDATE [dbo].[tablesym] SET PAYMSTTS=0,SWP=0,IDRM= NULL'

如果您正在使用某些变量,则可能必须使用

SELECT @query21= 'UPDATE [dbo].[tablesym] SET PAYMSTTS=0,SWP=0,IDRM= ' 
 + ISNULL(@IDRM, 'NULL')

答案 1 :(得分:0)

将存储过程中的行更改为:

SELECT @query21= 'UPDATE [dbo].[tablesym] SET PAYMSTTS=0,SWP=0,IDRM=NULL'

答案 2 :(得分:0)

使用null连接字符串将在引号内返回null always.write null。