Не удалось создать процедуру Ошибка: необходимо объявить скалярную переменную "@TableName" - PullRequest
0 голосов
/ 13 ноября 2018
CREATE PROCEDURE [dbo].[sp_DropMasks]
@TableName nvarchar(127)='',
@FieldName nvarchar(127)='',
@MaskFunction nvarchar(127)=''
AS 
BEGIN
    declare @ATableName nvarchar(127)=''
    declare @AFieldName nvarchar(127)=''
    declare @AMaskFunction nvarchar(127)=''
    declare @SqlStr nvarchar(max)=''
    DECLARE crs CURSOR Read_Only Fast_Forward FOR
        SELECT TOP 100 PERCENT
            TableName=tbl.name,
            ColumnName=c.name,
            c.masking_function
        FROM 
            sys.masked_columns AS c inner join 
            sys.tables AS tbl ON c.object_id = tbl.object_id
        WHERE 
            is_masked=1 and 
            tbl.name like '%'+@TableName+'%' and 
            c.name like '%'+@FieldName+'%' and 
            c.masking_function like '%'+@MaskFunction+'%'
    Open crs
    Fetch Next From crs INTO @ATableName,@AFieldName,@AMaskFunction
    WHILE @@FETCH_STATUS = 0
    BEGIN
        set @SqlStr = @SqlStr + 
                    ' ALTER TABLE ' + @ATableName +
                    ' ALTER COLUMN ' + @AFieldName + 
                    ' DROP MASKED ' 
        Fetch Next From crs INTO @ATableName,@AFieldName,@AMaskFunction
    END
    CLOSE crs
    DEALLOCATE crs
    if @SqlStr <> ''
        exec(@SqlStr)
END;

Я не вижу неверный синтаксис или отсутствующее объявление.

Ошибка:

Сообщение 156, уровень 15, состояние 1, строка 28 Неправильный синтаксис рядомключевое слово «ПРОЦЕДУРА».

Сообщение 156, уровень 15, состояние 1, строка 28 Неправильный синтаксис рядом с ключевым словом «ПРОЦЕДУРА».

сообщение 156, уровень 15, состояние 1, строка 28 неверносинтаксис рядом с ключевым словом «ПРОЦЕДУРА».

Сообщение 137, уровень 15, состояние 2, строка 45 Необходимо объявить скалярную переменную «@TableName».

Сообщение 137, уровень 15, состояние 2,Строка 45 должна объявить скалярную переменную "@TableName".

Msg 137, уровень 15, состояние 2, строка 45 Должна быть объявлена ​​скалярная переменная "@TableName".

Msg 8180, уровень 16, Состояние 1, Процедура sp_describe_parameter_encryption, Строка 1 [Строка пакетного запуска 27] Оператор (ы) не может быть подготовлен.

Сообщение 8180, Уровень 16, Состояние 1, Процедура sp_describe_parameter_encryption, Строка 1 [Строка пакетного запуска 27]Заявление (я) не может быть подготовлено.

Msg 8180, Leуровень 16, состояние 1, процедура sp_describe_parameter_encryption, строка 1 [Строка пакетного запуска 27] Оператор (ы) не может быть подготовлен.

1 Ответ

0 голосов
/ 13 ноября 2018

я забыл выключить всегда зашифрованный при подключении.

благодаря

Невозможно добавить хранимую процедуру в базу данных из-за сообщения шифрования

теперь работает просто отлично.

...