我试图在满足条件的情况下为通过参数传递的变量赋值。
CREATE PROCEDURE MY_SP
@SomeDate DATE
AS
BEGIN
IF @SomeDate IS NOT NULL
BEGIN
UPDATE TABLE_A
SET DATE1=@SomeDate
END
ELSE
BEGIN
SET @SomeDate = GETDATE()
END
print @SomeDate
-- code that is not actually a print
因此,我想在那之后使用@SomeDate,但是由于该值是在不同的范围内给出的,因此我不希望它如何工作。 如何在IF中返回给@SomeDate(ELSE部分)的值以供以后使用?
答案 0 :(得分:0)
我认为您总是想进行更新,如果参数为GetDate()
,请使用NULL
在这种情况下,您可以像下面的示例那样更简单。
如果不是这种情况,请更详细地说明您要做什么
CREATE PROCEDURE MY_SP @SomeDate DATE
AS
BEGIN
set nocount on
if @SomeDate is null
SET @SomeDate = GETDATE()
UPDATE TABLE_A
SET DATE1=@SomeDate
print @SomeDate
end
答案 1 :(得分:0)
CREATE PROCEDURE MY_SP @SomeDate DATE
AS
BEGIN
set nocount on
UPDATE TABLE_A
SET DATE1=ISNULL(@SomeDate,GETDATE())
end