Таблица SQL "Указатель"? - PullRequest
       15

Таблица SQL "Указатель"?

2 голосов
/ 25 августа 2010

Использование SQl Server 2000 У меня есть хранимая процедура, которая объединяет 2 таблицы и затем возвращает данные.Я хочу, чтобы этот sp мог делать это для любого имени таблицы, которое я передаю, иначе у меня будет точно такой же код, за исключением имени таблицы 20 или около того раз в гигантском операторе if.В основном, как я могу использовать переменную, чтобы указать на таблицу, или это разрешено?Спасибо.

Ответы [ 3 ]

5 голосов
/ 25 августа 2010

Вам нужен динамический SQL, начните здесь Проклятие и благословения динамического SQL , чтобы узнать, как сделать это правильно, чтобы никто не отбрасывал ваши таблицы и не делал ничего другого с SQL Injection

0 голосов
/ 25 августа 2010

Один процесс делать что-либо, как правило, плохая плохая идея. 20 возможных таблиц, к которым мне, возможно, придется обратиться в зависимости от обстоятельств, почти всегда указывают на плохую структуру базы данных. Прочтите статью Дениса, посвященную проклятиям и благословениям динамического SQL.

0 голосов
/ 25 августа 2010

Попробуйте построить SELECT как строку, а затем вызвать EXEC и передать строку.

Например,

declare @sql varchar(500)
set @sql = 'select whatever from ' + @tableName
exec @sql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...