Соглашение по именам параметров

Соглашение по именам параметров

Хранимые процедуры и SQL-команды для сохранения изменений или обработки событий могут использовать значения из колонок таблиц.

Например, параметр @date получает значение из колонки date, а @account_id — из колонки account_id, и так далее.

Если имя колонки содержит символы, которые не поддерживаются в именах параметров, замените их на эквиваленты в XML-кодировке.

Например, используйте параметр @account_x0020_name для получения значения из колонки "account name".

Ниже представлена функция SQL Server, которая возвращает корректные имена параметров для имен колонок таблицы:

CREATE FUNCTION [xls].[get_escaped_parameter_name]
(
    @name nvarchar(128) = NULL
)
RETURNS nvarchar(255)
AS
BEGIN

RETURN
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(@name
    , ' ', '_x0020_'), '!', '_x0021_'), '"', '_x0022_'), '#', '_x0023_'), '$', '_x0024_')
    , '%', '_x0025_'), '&', '_x0026_'), '''', '_x0027_'), '(', '_x0028_'), ')', '_x0029_')
    , '*', '_x002A_'), '+', '_x002B_'), ',', '_x002C_'), '-', '_x002D_'), '.', '_x002E_')
    , '/', '_x002F_'), ':', '_x003A_'), ';', '_x003B_'), '<', '_x003C_'), '=', '_x003D_')
    , '>', '_x003E_'), '?', '_x003F_'), '@', '_x0040_'), '[', '_x005B_'), '\', '_x005C_')
    , ']', '_x005D_'), '^', '_x005E_'), '`', '_x0060_'), '{', '_x007B_'), '|', '_x007C_')
    , '}', '_x007D_'), '~', '_x007E_')

END

Эта функция заменяет все неподдерживаемые символы в имени колонки на их XML-кодированные эквиваленты, что позволяет использовать их в качестве имен параметров.

Этот веб-сайт использует куки. Продолжая использовать веб-сайт, Вы принимаете условия Политики защиты персональных данных.