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

Откуда: Харків
Сообщений: 1233
Подскажите плиз.
Есть процедурка, которая принимает на вход десяток параметров и возвращает SELECT примерно сотни полей и два десятка строк.
Как лучше всего выбрать только две колонки, которые возвращает процедура и пробежаться дальше курсором?
Объявлять временную таблицу с сотней колонок не хочется.
3 фев 12, 17:55    [12029240]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
igor2222, написать процедуру на основе изначальной не предлагать?
3 фев 12, 18:05    [12029303]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Очень нежелательно
3 фев 12, 18:10    [12029333]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Никакого SELECT FROM EXEC не существует в каком нибудь скрытом виде?
3 фев 12, 18:11    [12029342]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Или что нибудь типа CREATE TABLE #My_table AS EXEC ?
3 фев 12, 18:12    [12029349]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
igor2222, а openrowset+exec тоже не пойдет?
3 фев 12, 18:13    [12029356]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
igor2222
Никакого SELECT FROM EXEC не существует в каком нибудь скрытом виде?

--EXEC sp_configure 'show advanced options', 1
--RECONFIGURE
--EXEC sp_configure 'Ad Hoc Distributed Queries', 1
--RECONFIGURE

SELECT * 
FROM OPENROWSET('SQLOLEDB', 'Server=(local);TRUSTED_CONNECTION=YES;','set fmtonly off exec master.dbo.sp_who')
3 фев 12, 18:15    [12029375]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
loopback linkedsever
Guest
igor2222
Никакого SELECT FROM EXEC не существует в каком нибудь скрытом виде?

loopback linkedsever +
select f1,f2 from openquery('exec loopback.bd.dbo.proc1 @p = 1')



но это плохой способ,
очень плохой.
3 фев 12, 18:16    [12029384]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
К сожалению show advanced options на продакшене тоже менять нельзя...
Больше нет вариантов?
3 фев 12, 18:18    [12029387]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
igor2222
К сожалению show advanced options на продакшене тоже менять нельзя...
Больше нет вариантов?

Сходить на поклон к Майкрософту, заплатить денег за нужную функциональность.
3 фев 12, 18:19    [12029399]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
igor2222
Никакого SELECT FROM EXEC не существует в каком нибудь скрытом виде?


а вариант insert #temp_table exec myproce @parameter чем не устраивает?
3 фев 12, 18:27    [12029452]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
Crimean
Member

Откуда:
Сообщений: 13147
а в следующей версии это случайно еще не сделали? вроде обещали..
3 фев 12, 18:28    [12029455]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
к сожалению нет
Guest
Crimean
а в следующей версии это случайно еще не сделали? вроде обещали..

, вроде, там можно менять названия колонок и типов, для всех датасетов, но не кол-во столбцов :(
3 фев 12, 18:31    [12029482]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
igor2222
Member

Откуда: Харків
Сообщений: 1233
Угу, спасибо всем!
Перечислил все колонки для темповой таблички всего за полчаса :)
3 фев 12, 18:52    [12029593]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
непонятно
Guest
к сожалению нет
Crimean
а в следующей версии это случайно еще не сделали? вроде обещали..

, вроде, там можно менять названия колонок и типов, для всех датасетов, но не кол-во столбцов :(


хотя документация какая-то не однозначная (оно и понятно, она предварительная)


http://msdn.microsoft.com/en-us/library/ms188332(v=sql.110).aspx


автор
column_name The names of each column. If the number of columns differs from the result set, an error occurs and the batch is aborted. If the name of a column differs from the result set, the column name returned will be set to the name defined.
data_type The data types of each column. If the data types differ, an implicit conversion to the defined data type is performed. If the conversion fails the batch is aborted
COLLATE collation_name The collation of each column. If there is a collation mismatch, an implicit collation is attempted. If that fails, the batch is aborted.
NULL | NOT NULL The nullability of each column. If the defined nullability is NOT NULL and the data returned contains NULLs an error occurs and the batch is aborted. If not specified, the default value conforms to the setting of the ANSI_NULL_DFLT_ON and ANSI_NULL_DFLT_OFF options.



и

тут же ниже


автор
The actual result set being returned during execution can differ from the result defined using the WITH RESULT SETS clause in one of the following ways: number of result sets, number of columns, column name, nullability, and data type. If the number of result sets differs, an error occurs and the batch is aborted.

а то что выделено красны, вообще сломало мне мозг
3 фев 12, 19:01    [12029650]     Ответить | Цитировать Сообщить модератору
 Re: Вроде бы простой вопрос  [new]
Crimean
Member

Откуда:
Сообщений: 13147
непонятно
а то что выделено красны, вообще сломало мне мозг


а если хранимка такая:

as

select * from systypes
select * from syscolumns

return

то что делать? правильно, договариваться о порядке поступления результирующих выборок. и если он не тот - давать ошибку
3 фев 12, 19:35    [12029819]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить