Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Динамический select из разных таблиц  [new]
romanych3333
Member

Откуда:
Сообщений: 67
Всем привет!

Есть задача:
сделать select Code, Name from @ИМЯТАБЛИЦЫ из функции или хранимой процедуры.
Снаружи вызов: select * from GETLIST('ИМЯТАБЛИЦЫ')
Уперся в проблему, что EXEC sp_executesql не работает внутри функций.
Есть ли способ это обойти?

Буду очень спасибо за подсказки.
10 авг 11, 10:51    [11095736]     Ответить | Цитировать Сообщить модератору
 Re: Динамический select из разных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
romanych3333
Уперся в проблему, что EXEC sp_executesql не работает внутри функций.
Есть ли способ это обойти?

Нет
10 авг 11, 10:52    [11095746]     Ответить | Цитировать Сообщить модератору
 Re: Динамический select из разных таблиц  [new]
a.ivanov
Member

Откуда: Москва
Сообщений: 112
romanych3333,

А изначально что требуется?
10 авг 11, 10:59    [11095818]     Ответить | Цитировать Сообщить модератору
 Re: Динамический select из разных таблиц  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
romanych3333
Есть задача:
сделать select Code, Name from @ИМЯТАБЛИЦЫ из функции или хранимой процедуры.


Вообще интересно, подобный вопрос в 10 первых постов авторов, откуда тяга-то к такой архитектуре ?

Подсказка - так не делать.
10 авг 11, 11:00    [11095834]     Ответить | Цитировать Сообщить модератору
 Re: Динамический select из разных таблиц  [new]
romanych3333
Member

Откуда:
Сообщений: 67
Хорошо, изначальная задача:

Есть Grid (ASPxGridView от DevExpress, если это важно), и SqlDataSource к нему.
Grid отображает разные сущности, а сущности лежат в разных таблицах (гарантированно все имеют поля Code и Name)

Сейчас сделано, что ASP.NET-страница принимает параметр TYPE, и в зависимости от него забивает SelectCommand = 'select Code, Name from @TableName' (@TableName, разумеется, зависит от TYPE).

Хочется избавиться от кода в ASP.NET (вывести его в SQL Server), и прописать SelectCommand='GetLIST' с параметром.
10 авг 11, 11:10    [11095904]     Ответить | Цитировать Сообщить модератору
 Re: Динамический select из разных таблиц  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
romanych3333,


CREATE VIEW dbo.V
AS 
 SELECT Code , Name , 'A' AS EntityName FROM A
 UNION ALL
 SELECT Code , Name , 'B' AS EntityName FROM B
GO

SELECT Code,Name FROM V WHERE EntityName ='A'

 

Вообще viewmodel может отображать только один представление, попытка применить иной подход приводит к вот таким монстрам как у вас.
10 авг 11, 11:20    [11095995]     Ответить | Цитировать Сообщить модератору
 Re: Динамический select из разных таблиц  [new]
romanych3333
Member

Откуда:
Сообщений: 67
Ken@t,

Думаю, не прокатит.
1) Количество сущностей динамическое (есть таблица сущностей с полями TYPE и TABLENAME - как бы "диспетчерская" - откуда брать данные в зависимости от TYPE сущности)
2) Некоторых сущностей под миллион.
10 авг 11, 11:26    [11096045]     Ответить | Цитировать Сообщить модератору
 Re: Динамический select из разных таблиц  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
romanych3333,

))))
хп в руки и там собирать динамический запрос, не айс это.
Я просто прикинул, каково это осуществить фильтрацию по полям сущности. К тому же вечно придётся работать с ХП резалсет которой не формализован по структуре. Как оптимизировать запросы. Как....
10 авг 11, 11:33    [11096102]     Ответить | Цитировать Сообщить модератору
 Re: Динамический select из разных таблиц  [new]
execexec
Guest
romanych3333
Всем привет!

Есть задача:
сделать select Code, Name from @ИМЯТАБЛИЦЫ из функции или хранимой процедуры.
Снаружи вызов: select * from EXEC GETLIST 'ИМЯТАБЛИЦЫ'
Уперся в проблему, что EXEC sp_executesql не работает внутри функций.
Есть ли способ это обойти?

Буду очень спасибо за подсказки.
10 авг 11, 12:27    [11096681]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить