【发布时间】:2018-09-19 02:32:53
【问题描述】:
我在varchar 类型的变量中构建了一个查询我想用isnull() 进行测试
示例:
declare @sql varchar(max)
set @sql = '
Select top (100) id
FROM RIGHT R inner join RIGHT_TYPE RT on
R.RIGHT_TYPE_CODE = RT.CODE
WHERE R.RIGHT_TYPE_CODE = isnull('+@rightType+', R.RIGHT_TYPE_CODE)
'
exec (@sql)
go
@rightType 是我的存储过程的一个参数。
当我有 @rightType 等于 null nothings 的问题
谢谢。
【问题讨论】:
-
你有什么问题?
-
那么,您的问题是什么,您还没有问过。另一方面,连接值来创建查询是一个坏主意。它只是让你可以注射。我建议参数化您的查询。
-
这是您制作可选参数的方式吗,如果不应该使用,请提供
null? -
问题是当我有 @rightType 等于 null 时没有任何效果
-
@JamesZ 是的,正好做一个可选参数
标签: sql-server stored-procedures exec concat isnull