Sql 查询如何在执行之前验证是否替换了所有模板参数

Sql 查询如何在执行之前验证是否替换了所有模板参数,sql,sql-server,tsql,Sql,Sql Server,Tsql,在sql查询中,它可以在执行查询之前验证是否已替换所有模板参数 我在每个查询的开头都想到了这样一个检查参数的方法: IF ( '<Template param,'+ ',Value>' = '<Template param,,Value>' ) BEGIN RAISERROR (N'Please, first fill template parameter: <Template param,,Value>', 18, -1, N''); END

在sql查询中,它可以在执行查询之前验证是否已替换所有模板参数

我在每个查询的开头都想到了这样一个检查参数的方法:

IF ( '<Template param,'+
    ',Value>' = '<Template param,,Value>' )
BEGIN
    RAISERROR (N'Please, first fill template parameter: <Template param,,Value>', 18, -1, N'');
END
但这样我应该一个一个地检查每个参数。
有没有更智能的方法可以做到这一点?

您可以用实际变量替换参数,但不实际声明变量吗?这样,如果他们没有用所需的值替换变量,解析器就会抱怨变量没有初始化

IF ( @Template_param + @Value = @Template_param_Value )
BEGIN
    RAISERROR (@ErrorMsg, 18, -1, N'');
END

这应该在应用程序代码中完成,而不是在SQL中完成。如果您想在SQL Server中完成这项工作,最好使用存储过程,而不是临时查询,并将所有参数设置为非可选参数。SQL Server将为您处理其余部分。存储过程无法完成此任务,因为查询是由DBA在远程环境中执行的,我需要确保执行时查询没有留下任何模板。我不想制作一个特殊的应用程序来执行它们: