![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
mssql2000 и select из ХП
Анна © (2010-04-14 15:59:00)select * from dbo.sp_help ves
Как сделать селект из хранимой процедуры?
Ega23 (2010-04-15 13:31:00) [1]А какая проблема стоит-то?
han_malign (2010-04-15 13:14:00) [2]
> несколько наборов возвращает, знаю
- дык, а чего ж тогда удивительного, что:
>... inconsistent metadata for a column. The namewas changedat execution time.
- значит запрос таки прошел, вот только результат в rowsetне влазит...
Можно расцикливаться... :)
Анна (2010-04-15 13:03:00) [3]
> han_malign (15.04.10 12:53) [11]
Да я сама понимаю, что изврат... Просто зациклилась. То что несколько наборов возвращает, знаю, в дельфи их считываю, раскладываю в переменные и использую для create table.
Спасибо за участие. Да и вообще... :)) Спасибо!!!
han_malign (2010-04-15 12:53:00) [4]а зачем вообще этот изврат нужен, не проще в ручную по системным таблицам пробежаться? sp_help вообще то ни разу не гомогенный набор возвращает, там несколько наборов с разными полями, поэтому в select оно никак не запихнется...
Что-то мне подсказывает(телепатирую), что тебе syscolumns, или COLUMNPROPERTY(OBJECT_ID(doc_marker), COL_NAME(OBJECT_ID(doc_marker), n), prop) нужны...
Анна (2010-04-15 12:25:00) [5]
> поробуй 'USE vniro EXEC sp_help doc_marker', или 'EXEC sp_help
> ''vniro..doc_marker'''
Не... Не проходит.
> а если сделать процедуру, из которой вызывать EXEC sp_help
> doc_marker ?
Здесь тоже попробвала. Процедуру написала. Когда вызываю то работает, наборы данных выдает :
exec vniro..proc_sp_help ( в процедуре только один вызов : exec sp_help doc_marker)
Но когда ставлю в :
SELECT * FROM OPENQUERY(qqqq,'EXEC vniro..proc_sp_help'),
то ругается:
OLE DB provider 'SQLOLEDB' supplied inconsistent metadata for a column. The name was changed at execution time.
han_malign (2010-04-15 11:45:00) [6]поробуй 'USE vniro EXEC sp_help doc_marker', или 'EXEC sp_help ''vniro..doc_marker'''
12 (2010-04-15 11:34:00) [7]а если сделать процедуру, из которой вызывать EXEC sp_help doc_marker ?
Анна (2010-04-15 11:08:00) [8]
> han_malign (15.04.10 09:16) [6]
Сделала:
EXEC sp_addlinkedserver 'qqqq','','SQLOLEDB',@@servername
SELECT * FROM OPENQUERY(qqqq, 'EXEC vniro..fish_res_proc') where id_res=83
где fish_res_proc' - моя процедура. Все работает.
Но! Когда перехожу к sp_help, то не получается как указать БД к таблице:
SELECT * FROM OPENQUERY(qqqq, 'EXEC sp_help doc_marker')
При таком написании ругается, что в master-е нет табл.doc_marker...
если пишу:
SELECT * FROM OPENQUERY(qqqq, 'EXEC sp_help vniro..doc_marker ')
То инкоррект синтакс...
han_malign (2010-04-15 09:16:00) [9]
> функция и return table
- а вот и хрен: sp_... - ни разу не функция... простой FROM не прокатит... :(
Только OPENQUERY и INSERT-EXEC во временную таблицу...
> А что писать первым параметром (linked server)? У меня его нет...
sp_addlinkedserver @server = 'LOCALSERVER', @srvproduct = '',
@provider = 'SQLOLEDB', @datasrc = @@servername
SELECT * FROM OPENQUERY(LOCALSERVER, 'EXEC ...')
http://www.sommarskog.se/share_data.html
Анна (2010-04-14 17:13:00) [10]
> han_malign (14.04.10 16:44) [3]
> функция и return table
Спасибо!!!!
12 (2010-04-14 16:57:00) [11]> что писать первым параметром
сам себя
кстати, да
функция и return table
han_malign (2010-04-14 16:44:00) [12]user_defined_function
Specifies a user-defined function that returns a table. Ifthe user-defined function is a built-inuser-defined function, it mustbe preceded by two colons, as in
FROM ::fn_listextendedproperty
Анна (2010-04-14 16:26:00) [13]
> 12 © (14.04.10 16:00) [1]
> openquery?
А что писать первым параметром (linked server)? У меня его нет...
SELECT *
FROM OPENQUERY( ..master,'SELECT * FROM dbo.sp_help ves')
12 (2010-04-14 16:00:00) [14]openquery?