【发布时间】:2014-09-01 06:32:14
【问题描述】:
我有一个 case 语句,它将一个 varchar 变量 @stored_proc_name 设置为我稍后要调用的过程的名称。我要调用的过程之一将 varchar 作为参数(以及 int)。我该怎么做呢?目前我拥有的是这个
SELECT @stored_proc_name = CASE @p_process_name
WHEN 'misdate' THEN 'findb..sp_cycle_date_daily'
WHEN 'balpremmis' THEN 'findb..pc_bal_writ_prem'
WHEN 'ursctl' THEN 'MIS_feeds..pc_mis_update_feed_control "URSPO", 1'
ELSE NULL
END
EXECUTE @stored_proc_name
最后一个是我的带参数的过程,其中“URSPO”应该是第一个,1 是 int。它在 SQL Server 2k8 上运行(我想我记得这个版本和旧版本之间的单引号和双引号有一些区别)。我有正确的吗?我承认我还没有测试过它,但这是一个我真的不想现在就开始的庞大过程的一部分。
感谢您的帮助!
【问题讨论】:
-
如果你想在 SQL Server 中转义单个刻度,只需使用这样的双刻度:
'MIS_feeds..pc_mis_update_feed_control ''URSPO'', 1' -
没错,听起来很熟悉。谢谢!
-
@entropic,考虑将其发布为答案并要求 OP 接受它。
标签: sql-server tsql variables quotes varchar