错误:Azure SQL 数据库中的存储过程中接近'@variable'的语法不正确



我正在尝试通过查询编辑器在 Azure SQL 数据库 - 基本托管实例中创建包含参数的存储过程。

每当我引用任何参数时,我都会得到一个语法错误,独立于 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'.

试试这个 -

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)

最新更新