Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Verbal
0 / 0 / 2
Регистрация: 10.01.2013
Сообщений: 41
1

Вставить строчку в таблицу когда вызывается хранимка

03.07.2014, 11:23. Просмотров 691. Ответов 8
Метки нет (Все метки)

вообщем есть табличная переменная @tmp table(TmpCompanyID) и есть хранимка которая возращает, список строк в которых, CompanyID, NameCompany, ...

теперь как реализовать следующее
SQL
1
2
INSERT INTO @tmp(TmpCompanyID)
EXEC usp_CompanyEditorTop10Select @contentTitle, @TierID
т.е. надо поле CompanyID которая вернула хранимка usp_CompanyEditorTop10Select , вставить в TmpCompanyID, остальные поля ненужны, при этом хранимку нельзя изменять
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2014, 11:23
Ответы с готовыми решениями:

Как из таблицы со списком, когда аудитории заняты, собрать таблицу со списком когда они свободны
Есть таблица: ID НомерАудитории Дата ВремяНачалааЗанятия ВремяКонца...

Создание триггера, который переносит удаляемую строчку в другую таблицу
Здравствуйте, нужно создать триггер, который срабатывает при удалении и...

Хранимка падает
Процедура падает, ошибка: сообщение: 241, уровень: 16, состояние: 1, процедура:...

Вставить 1000 строк в таблицу
Есть простейшая таблица состоящая из 2 столбцов id, flag Подскажите как можно...

Как вставить запись в таблицу с INDENTITY_INSERT?
Извините может это глупый вопрос. Я просто только начал разбирать с SQL Server...

8
kodv
1419 / 1093 / 344
Регистрация: 11.04.2011
Сообщений: 2,606
Завершенные тесты: 1
03.07.2014, 11:50 2
Напрямую вытащить столбец из ХП нельзя.
T-SQL
1
2
3
4
CREATE TABLE #TempTable (CompanyID INT, NameCompany VARCHAR(500), ...)
INSERT #TempTable EXEC usp_CompanyEditorTop10Select @contentTitle, @TierID
INSERT @tmp SELECT CompantID FROM #TempTable
DROP TABLE #TempTable
0
Verbal
0 / 0 / 2
Регистрация: 10.01.2013
Сообщений: 41
03.07.2014, 11:56  [ТС] 3
Вы создали временную таблицу TempTable с несколькими полями, а в той таблице компаний весьма много полей и не хотелось бы их все перечислять, по этому и спрашиваю, можно ли как-то не перечисляя все столбцы вытащить только один? или обязательно все должны быть перечислены?
И да желательно, без временных таблиц
0
kodv
1419 / 1093 / 344
Регистрация: 11.04.2011
Сообщений: 2,606
Завершенные тесты: 1
03.07.2014, 11:59 4
Verbal, Есть варианты через ONEQUERY и OPENROWSET, но я думаю, что лучше так не извращаться.
0
Verbal
0 / 0 / 2
Регистрация: 10.01.2013
Сообщений: 41
03.07.2014, 12:06  [ТС] 5
а других вариантов нет? т.е. в sql невозможно сделать например так

SQL
1
2
3
INSERT INTO @tmp(TmpCompanyID)
SELECT CompanyID
EXEC usp_CompanyEditorTop10Select @contentTitle, @TierID
ну я понимаю что это кривой запрос, ну что то подобное возможно? или категорично нет!
0
kodv
1419 / 1093 / 344
Регистрация: 11.04.2011
Сообщений: 2,606
Завершенные тесты: 1
03.07.2014, 12:18 6
Цитата Сообщение от Verbal Посмотреть сообщение
что то подобное возможно?
С хранимой процедурой нет. Разве что только через вышеупомянутые мною функции. Для того, чтобы делать так, сущетсвуют функции, возвращающие табличное значение и вьюшки. Хранимая же процедура может вернуть несколько наборов данных, в том числе и ни одного.
0
Verbal
0 / 0 / 2
Регистрация: 10.01.2013
Сообщений: 41
03.07.2014, 12:20  [ТС] 7
а можно ссылки на функции которые возвращают табличное значение и вьюшки или только эти две? может сказать по каким ключевым словам гуглить, может найду.
0
kodv
1419 / 1093 / 344
Регистрация: 11.04.2011
Сообщений: 2,606
Завершенные тесты: 1
03.07.2014, 12:25 8
Verbal, Функции, правда по ссылке есть как скалярные, так и табличные; Вьюшки. Правда я не знаю, как вам это поможет, если у вас нет возможности ни изменить содрежимое хранимой процедуры. ни получить данные, не используя хранимую процедуру.
0
invm
1884 / 1276 / 380
Регистрация: 02.06.2013
Сообщений: 3,221
03.07.2014, 13:37 9
Если в процедуре результат возвращается без использования временных таблиц, то можно сделать временную таблицу с динамически формируемой схемой и потом insert ... exec ...
Или можно SQL CLR + XML
0
03.07.2014, 13:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2014, 13:37

Как вставить автоматически дату(системную) в таблицу?
Подскажите, пожалуйста, как вставить дату(текущего дня), то есть, чтобы при...

Нужно вставить в таблицу данные с повторяющимися primary key, но разными значениями
create table Аптеки ( КодАптеки int not null, КодПрепарата int not null,...

Когда вызывается ПриЗаписи() ?
Только что опытным путем установил, что если в модуле формы дока написано...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru