Stored procedures 错误:靠近'的语法不正确@变量';在azure sql数据库中的存储过程中
我正试图通过查询编辑器在Azure SQL数据库(基本托管实例)中创建一个带有参数的存储过程 无论何时引用任何参数,都会出现语法错误,与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
创建过程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
,不过还是要谢谢你。