Stored procedures 错误:靠近'的语法不正确@变量';在azure sql数据库中的存储过程中

Stored procedures 错误:靠近'的语法不正确@变量';在azure sql数据库中的存储过程中,stored-procedures,azure-sql-database,Stored Procedures,Azure Sql Database,我正试图通过查询编辑器在Azure SQL数据库(基本托管实例)中创建一个带有参数的存储过程 无论何时引用任何参数,都会出现语法错误,与SQL代码的其余部分无关 我已经成功地创建了没有参数的存储过程 即使是最简单的代码也会导致错误: 创建过程testProcedure @主密码varchar(50) 作为 开始 按密码打开主密钥解密=@masterPassword; 结束 我不希望有任何错误。但是,我仍然收到以下错误: Failed to execute query. Error: Incor

我正试图通过查询编辑器在Azure SQL数据库(基本托管实例)中创建一个带有参数的存储过程

无论何时引用任何参数,都会出现语法错误,与SQL代码的其余部分无关

我已经成功地创建了没有参数的存储过程

即使是最简单的代码也会导致错误:

创建过程testProcedure
@主密码varchar(50)
作为
开始
按密码打开主密钥解密=@masterPassword;
结束
我不希望有任何错误。但是,我仍然收到以下错误:

Failed to execute query. Error: Incorrect syntax near '@masterPassword'.
试试这个-

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)

谢谢,但是,尽管现在创建的存储过程没有错误,但字符串被解释为
“@masterPassword”
,而不是实际参数。这是你期待的@Arulmouzhi吗?确实如此!我在更新前几个小时就知道需要使用
EXEC
,不过还是要谢谢你。