Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MSSQL 7.0. Как во view использовать набор данных, полученный из хран. процедуры
|
|||
|---|---|---|---|
|
#18+
Есть проблема. Имеем view, которая использует набор данных, возвращенный хранимой процедурой. Примерно так: exec sp_serveroption MY_SERVER , 'data access', 'true' GO create view v1 as select * from OPENQUERY(MY_SERVER,'exec sp_who') where .... GO Недостаток такой конструкции состоит в том, что имя сервера (MY_SERVER) он заранее неизвестно. Хотелось бы, чтобы оно подставлялось динамически. Как-нибудь так: create view v1 as select * from OPENQUERY(@@SERVERNAME,'exec sp_who') where .... Но это не прокатывает, т.к. первый параметр для OPENQUERY является строковым выражением. Вопрос: можно ли как-нибудь разрешить проблему, т.е. прообразовать @@SERVERNAME в вид, который прокатит для OPENQUERY? Или может есть какие-нибудь еще варианты реализовать сабж? ЗЫ: Можно конечно использовать DSQL (execute, sp_execute, sp_executesql и т.д.) для создания view, но это не приветствуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2001, 15:41 |
|
||
|
MSSQL 7.0. Как во view использовать набор данных, полученный из хран. процедуры
|
|||
|---|---|---|---|
|
#18+
Без DSQL такой вопрос не решается. Но если в качестве результата использовать не View, а временную таблицу, могу предложить примитивный вариант. Примитивный, так как необходимо заранее знать все возможные имена серверов CREATE PROCEDURE spTest @ServerName AS CHAR( 100) AS CASE @ServerName WHEN 'Name1' THEN SELECT * INTO ##Temp FROM OPENQUERY( Name1, 'EXEC sp_Who') WHEN 'Name2' THEN SELECT * INTO ##Temp FROM OPENQUERY( Name2, 'EXEC sp_Who') END ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2001, 09:05 |
|
||
|
MSSQL 7.0. Как во view использовать набор данных, полученный из хран. процедуры
|
|||
|---|---|---|---|
|
#18+
Извините за ошибку, CASE конечно так не работает. Правильно будет: IF @ServerName = 'Name1' BEGIN SELECT * INTO ##Temp FROM OPENQUERY( Name1, 'EXEC sp_Who') RETURN 1 END IF @ServerName = 'Name2' BEGIN SELECT * INTO ##Temp FROM OPENQUERY( Name2, 'EXEC sp_Who') RETURN 1 END ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2001, 12:56 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32016319&tid=1825123]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 351ms |

| 0 / 0 |
