2015-02-26 1 views
-3

У меня проблема: В моей таблице есть несколько столбцов, которые являются числами. Я могу обратиться к ним с помощью []. Однако это не работает, если я хочу обратиться к столбцу с использованием переменной.Ссылаясь на имя столбца, которое является числом с переменной

E.g. Я объявляю переменную @i, устанавливаю ее в 1. Как я могу ее использовать, чтобы ссылаться на столбец с именем «1»?

+2

Что ты пытаешься сделать? Обычно вы делаете это только для динамического SQL, и в этом случае это будет просто '' [1] '' –

+0

У меня есть таблица со столбцами, которые составляют месяцы (например, 1-36). Для каждого @i (число месяца) я хочу обновить строку с заданным значением (сумма других строк, но число этих строк также зависит от другой переменной), в столбце, которое оно ссылается на –

+0

. Чтобы использовать переменной для имени столбца, вы должны использовать динамический sql. Таким образом, вы просто включаете [] в свою динамическую строку sql. –

ответ

0

Я предполагаю, что вы ищете что-то вроде этого, чтобы принять int используется для зацикливания и convert его в представлении строки используется для ссылки на столбец:

DECLARE @i AS INT = 1 

SELECT '[' + CONVERT(VARCHAR(3), @i) + ']' 

Обеспечивает получение: [1]

Вы можете использовать это в динамической инструкции SQL, например:

EXEC SP_EXECUTESQL('SELECT [' + CONVERT(VARCHAR(3), @i) + ']... FROM YOUR_TABLE') 
+0

Я хочу использовать это [30] в update Table set '[' + CONVERT (VARCHAR (3), @i) + ']' = 0 , и это действительно не работает. –

+0

Вам необходимо создать * whole * SQL-оператор в виде строки, затем EXEC() или sp_executeSQL, вы не можете случайно заменить имена файлов для переменных –

+0

Получил это. Спасибо. –

Смежные вопросы