在SQL函数/ probs中设置变量

时间:2012-05-24 14:17:46

标签: sql sql-server

假设我有一个普通的SQL过程,它有一些参数。

在调试期间,如果我可以为这些参数赋值,这样我就可以突出显示proc的主体并执行它(而不是手动用值替换变量。

有没有办法做到这一点?我试过了:

@Date1 datetime,
@Date2 datetime

SET @Date1 = '2012-03-23'

但它不喜欢它?

3 个答案:

答案 0 :(得分:2)

尝试 DECLARE @Date1 datetime SET @Date1 = '2012-03-23'

看起来你错过了declare语句。如果它不喜欢'2012-03-23'部分,你可能需要投射它。

答案 1 :(得分:2)

如果您要这样做,我建议您考虑在程序中添加@Debug参数:

create procedure dbo.SomeProc @p1 int, @p2 int, @Debug bit = 0x0
as
set nocount on
begin

if @Debug = 0x1 -- set test values only if debugging
begin
print 'Start debugging'
set @p1 = 1
set @p2 = 2
end

/* your code continues here... */

end

然后,当您想要测试代码时,只需使用@Debug = 0x1执行该过程即可执行调试代码。

答案 2 :(得分:1)

将'declare'字样放在@ Date1

前面