Как дать значение переменной, переданной параметром внутри if? - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь присвоить значение переменной, переданной параметром внутри условия if, когда выполняются условия.

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 после этого, но поскольку значение задано в другой области, оно не работает так, как я хотел, чтобы оно работало. Как я могу вернуть значение, данное @SomeDate (часть ELSE) внутри IF, чтобы использовать его позже?

Ответы [ 2 ]

0 голосов
/ 13 июня 2019
CREATE PROCEDURE MY_SP @SomeDate DATE
AS
BEGIN
  set nocount on

  UPDATE TABLE_A
  SET DATE1=ISNULL(@SomeDate,GETDATE())

end
0 голосов
/ 13 июня 2019

Я думаю, что вы всегда хотите сделать обновление, и используйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...