|
[MSSQL/t-sql] Можно ли передать имя таблицы в виде параметра запроса
|
|||
---|---|---|---|
#18+
Добрый день, Пишу на golang, обращаюсь к MSSQL с ипользованием go-mssqldb, но как я понял, проблема не относится ни к языку программирования, ни к библиотеке, по крайней мере встречал похожие проблемы и на C# Использую именованные параметры запросов для того, чтобы бороться с SQL injection Но у меня есть проблема, заключающаяся в том, что имя таблицы задается в конфигурационном файле и, соответсвенно, его тоже нужно по-хорошему проверять на SQL injection. Пытаюсь сделать такой запрос: Код: sql 1.
Сообщение об ошибке: mssql: Must declare the table variable "@TABLE_NAME". На запрос вида: Код: sql 1.
ошибка: mssql: Invalid object name '@TABLE_NAME' Может у кого-нибудь был опыт или есть идеи как передавать имя таблицы в виде параметра? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 21:18 |
|
[MSSQL/t-sql] Можно ли передать имя таблицы в виде параметра запроса
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 21:52 |
|
[MSSQL/t-sql] Можно ли передать имя таблицы в виде параметра запроса
|
|||
---|---|---|---|
#18+
Akina Спасибо, работает. Привожу тут ответ для тех, кто будет искать после меня: Код: sql 1.
Правда, я призадумался: а ведь при таком запросе не будет никакой защиты от SQL injection... :-/ ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2021, 01:11 |
|
[MSSQL/t-sql] Можно ли передать имя таблицы в виде параметра запроса
|
|||
---|---|---|---|
#18+
Vadim S. Adamlyuk Использую именованные параметры запросов для того, чтобы бороться с SQL injection ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2021, 05:41 |
|
[MSSQL/t-sql] Можно ли передать имя таблицы в виде параметра запроса
|
|||
---|---|---|---|
#18+
Vadim S. Adamlyuk Akina Спасибо, работает. Привожу тут ответ для тех, кто будет искать после меня: Код: sql 1.
Правда, я призадумался: а ведь при таком запросе не будет никакой защиты от SQL injection... :-/ Вообще, задача изначально стоит криво. Не надо делать выбор какую таблицу читать. Если у тебя есть задача разделить некие похожие данные "по таблицам", то сделай одну общую таблицу для всех этих данных и добавь в нее поле которое и будет играть роль твоей нынешней @TABLE_NAME (ну и сделай его частью ПК). А дальше стандартными параметрическими запросами, не забывая указывать какую из виртуальных таблиц тебе сейчас надо использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2021, 06:37 |
|
[MSSQL/t-sql] Можно ли передать имя таблицы в виде параметра запроса
|
|||
---|---|---|---|
#18+
Vadim S. Adamlyuk Правда, я призадумался: а ведь при таком запросе не будет никакой защиты от SQL injection... :-/ QUOTENAME Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2021, 06:55 |
|
[MSSQL/t-sql] Можно ли передать имя таблицы в виде параметра запроса
|
|||
---|---|---|---|
#18+
... а потом окажется, что "в файле конфигурации" имя таблицы записано строчными, а для идентификаторов в кавычках преобразование регистра не делается. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2021, 09:48 |
|
|
start [/forum/topic.php?fid=16&msg=40086308&tid=1339645]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 261ms |
total: | 396ms |
0 / 0 |