Используя переменную для имени таблицы в 'Из' пункта в SQL Server 2008

Просто пользовательское приложение: fabCustomSize в xml

app:fabCustomSize="100dp"

Bingo.

5
задан DaveK 12 June 2009 в 19:37
поделиться

6 ответов

Это невозможно, динамический SQL не поддерживается в функциях.

См. этот вопрос SO: Выполнение динамического SQL в функции SQLServer 2005

7
ответ дан 18 December 2019 в 05:27
поделиться
SET @SQL = 'SELECT * FROM ' + @table
EXEC (@SQL)  -- parentheses are required
21
ответ дан 18 December 2019 в 05:27
поделиться

Вы можете ОБЪЕДИНЯТЬ ВСЕ свои таблицы и включить имя таблицы в качестве столбца, затем укажите имя таблицы как предикат над этим. Если вы проверите план запроса для этого примера, вы увидите, что t2 не затрагивается

create table t1 (i int)
create table t2 (i int)

insert t1 values(1)
insert t1 values(2)
insert t1 values(3)
insert t2 values(4)
insert t2 values(5)
insert t2 values(6)


;with tableSet as (
    select i, 't1' as tableName from t1
    union all select i, 't2' as tableName from t2
)
select i from tableSet where tableName = 't1'
5
ответ дан 18 December 2019 в 05:27
поделиться

Вы можете написать udf clr, который может выполнять динамический sql. Мне приходилось реализовывать это раньше. Это довольно красиво.

3
ответ дан 18 December 2019 в 05:27
поделиться

Вы не можете этого сделать. Какую проблему вы решаете, могут быть другие решения.

0
ответ дан 18 December 2019 в 05:27
поделиться

Если бы вы более подробно рассказали, какую основную проблему вы пытаетесь решить, у нас могут быть лучшие ответы. Одно из решений состоит в том, чтобы кодировать UDF для каждой таблицы. Другой - использовать динамический SQL от SP. Трудно сказать, что подходит для вашей ситуации.

0
ответ дан 18 December 2019 в 05:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: