Ошибка: неверный синтаксис рядом с '@variable' в хранимой процедуре в базе данных Azure SQL - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь создать хранимую процедуру с параметрами в базе данных SQL Azure - базовый управляемый экземпляр, через редактор запросов.

Каждый раз, когда я делаю ссылку на какой-либо параметр, я получаю ошибку синтаксиса, независимоостальной части кода SQL.

Я успешно создал хранимые процедуры без параметров.

Даже самый простой код приводит к ошибке:

CREATE PROCEDURE testProcedure
   @masterPassword varchar(50)
AS      
BEGIN

    OPEN MASTER KEY DECRYPTION BY PASSWORD = @masterPassword;

END

Я быне ожидайте никаких ошибок. Тем не менее, я все еще получаю эту ошибку:

Failed to execute query. Error: Incorrect syntax near '@masterPassword'.

1 Ответ

0 голосов
/ 30 сентября 2019

Попробуйте это -

CREATE OR ALTER PROCEDURE testProcedure
   @masterPassword varchar(50)
AS      
BEGIN
    DECLARE @SELECT NVARCHAR(MAX);

    SELECT @SELECT=N'OPEN MASTER KEY DECRYPTION BY PASSWORD = ''' + @masterPassword + ''' '; --Expecting String

    EXEC (@SELECT);

END

- ИСПЫТАНИЕ НА БЛОК-

--error
 select ''' + @in + '''

--corrected method
declare @a nvarchar(50),@in varchar(50);
set @in=cast('hi' as varchar(50));
select @a=' select ''' + @in + ''' ';
exec (@a)
...