Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL函数/问题中设置变量_Sql_Sql Server - Fatal编程技术网

在SQL函数/问题中设置变量

在SQL函数/问题中设置变量,sql,sql-server,Sql,Sql Server,假设我有一个普通的SQL过程,它有几个参数 在调试过程中,如果我能为这些参数分配一些值,这样我就可以突出显示proc的主体并执行它(而不是手动用值替换变量),那就太好了 有没有办法做到这一点?我试过: @Date1 datetime, @Date2 datetime SET @Date1 = '2012-03-23' 但它不喜欢它???把“declare”字放在@Date1前面把“declare”字放在@Date1前面试试看 DECLARE@Date1 datetime SET@Date1=

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

在调试过程中,如果我能为这些参数分配一些值,这样我就可以突出显示proc的主体并执行它(而不是手动用值替换变量),那就太好了

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

@Date1 datetime,
@Date2 datetime

SET @Date1 = '2012-03-23'

但它不喜欢它???

把“declare”字放在@Date1前面

把“declare”字放在@Date1前面

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

看起来您缺少了declare语句。如果它不喜欢“2012-03-23”部分,您可能必须对其进行转换。

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


看起来你错过了声明语句。如果它不喜欢“2012-03-23”部分,你就必须把它扔掉。

如果你要这么做,我建议你考虑在程序中添加一个@调试参数:

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”来执行调试代码。

< P>如果你要这样做,我建议你考虑在程序中添加一个@调试参数:

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
执行该过程即可执行调试代码。

也许您想将
@Debug
参数声明为可选参数parameter@Sung它是可选的:它有一个默认值0x0,您可以将
@Debug
参数声明为可选参数@它是可选的:默认值为0x0