В связи с изменениями правил в Великобритании мы изменяем нашу базу данных, чтобы использовать Always Encrypted для всех идентифицирующих и потенциально конфиденциальных данных нашего лица.
При попытке запустить хранимую процедуру после того, как все шифрование состоялось, я получил следующую ошибку.
Несоответствие схемы шифрования для столбцов / переменных '@FilePath'. Схема шифрования для столбцов / переменных: (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_Auto1', column_encryption_key_key_name__exject__ject_name_name =) = => PLAINTEXT ') (или слабее).
Итак, при просмотре и комментировании оскорбительной строки SP создает и запускает "отлично".
Прекрасно, так как теперь он имеет неверные значения.
SQL-нарушитель:
select @FilePath = ParameterValue from Parameter where ParameterCode = 'EXPORT_PATH'
Итак, я вытащил эту строку в собственный SQL, а не в SP, и заставил ее работать так.
DECLARE @FilePath VARCHAR(8000) = '',
@ParameterCode varchar(50) = 'EXPORT_PATH'
SELECT @FilePath = ParameterValue from Parameter where ParameterCode = @ParameterCode
SELECT @FilePath
Что работает отлично, однако, когда я оборачиваю это в SP, как
CREATE PROCEDURE SIMONTEST
AS
BEGIN
DECLARE @FilePath VARCHAR(8000) = '',
@ParameterCode varchar(50) = 'EXPORT_PATH'
SELECT @FilePath = ParameterValue from Parameter where ParameterCode = @ParameterCode
SELECT @FilePath
END
GO
Я получаю ошибку
Сообщение 156, Уровень 15, Состояние 1, Строка 1
Неверный синтаксис рядом с ключевым словом «ПРОЦЕДУРА».
Сообщение 8180, Уровень 16, Состояние 1, Процедура sp_describe_parameter_encryption, Строка 1 [Стартовая Строка 0]
Не удалось подготовить оператор (ы).
Произошла ошибка при выполнении пакета. Сообщение об ошибке: Внутренняя ошибка.
Метаданные для параметра '@ p411c14c506c74dc690baf9ef724f7409' в выражении или
процедура 'СОЗДАТЬ ПРОЦЕДУРУ СИМОНТЕСТ
КАК
НАЧАТЬ
ОБЪЯВИТЬ @FilePath AS VARCHAR (8000) = @ p411c14c506c74dc690baf9ef724f7409, @ParameterCode AS VARCHAR (50) = @ p9f3729b1d64742cf858ff9edb30a5d71;
SELECT @FilePath = ParameterValue
ИЗ параметра
ГДЕ ParameterCode = @ParameterCode;
SELECT @FilePath;
END
'отсутствует в наборе результатов, возвращаемом sp_describe_parameter_encryption.
Я был бы признателен, если бы кто-то мог помочь мне понять проблему и помочь мне решить ее.