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

Откуда:
Сообщений: 123
Добрый день
Столкнулся с тем что в запрос хранимой процедуры между двумя блоками нужно поместить команду GO
Но при создании процедуры она создается только до команды GO
Как решить эту проблему?

Пример:

use [Base]
go

IF OBJECT_ID('p_reports') IS NOT NULL DROP PROCEDURE [p_reports]
go

CREATE PROCEDURE [dbo].[p_reports] 
AS
 EXEC xp_cmdshell '1'
 GO
-- На этом этапе происходит процесс создания процедуры,  к последующим этапам не переходит

-- Второй этап процедуры 
 EXEC xp_cmdshell '2'


Вопрос наверное банальный, но не сталкивался как-то раньше с этим и найти в инете не удалось
17 авг 16, 09:12    [19550668]     Ответить | Цитировать Сообщить модератору
 Re: Команда GO в хранимой процедуре  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
hulk77,

сделать 2 процедуры, ну и прочитать что же означает это GO
17 авг 16, 09:17    [19550687]     Ответить | Цитировать Сообщить модератору
 Re: Команда GO в хранимой процедуре  [new]
o-o
Guest
BOL
GO Signals the end of a batch of Transact-SQL statements to the SQL Server utilities.

это разделитель бэтчей в студии и других утилитах,
поэтому в процедуре его быть не может.
а заодно, когда студия встречает GO, забирает все, что до него, в 1 бэтч
---
чте реализовать-то хотите, зачем GO в процедуру суете?
17 авг 16, 09:20    [19550703]     Ответить | Цитировать Сообщить модератору
 Re: Команда GO в хранимой процедуре  [new]
hulk77
Member

Откуда:
Сообщений: 123
Нужно создать процедуру, которая состоит из двух блоков
Первый - выполнение внешнего скрипта через процедуру xp_cmdshell
Второй - манипуляции на T-SQL с результатами этими выгрузки

Может действительно через две отдельные процедуры сделать..?
17 авг 16, 09:31    [19550749]     Ответить | Цитировать Сообщить модератору
 Re: Команда GO в хранимой процедуре  [new]
o-o
Guest
здесь GO не надо и так
17 авг 16, 09:34    [19550760]     Ответить | Цитировать Сообщить модератору
 Re: Команда GO в хранимой процедуре  [new]
hulk77
Member

Откуда:
Сообщений: 123
o-o
здесь GO не надо и так


o-o, правильно понял, пока не выполнится первый блок EXEC xp_cmdshell, к выполнению второго блока не приступит?
17 авг 16, 09:40    [19550796]     Ответить | Цитировать Сообщить модератору
 Re: Команда GO в хранимой процедуре  [new]
o-o
Guest
да
17 авг 16, 10:11    [19550924]     Ответить | Цитировать Сообщить модератору
 Re: Команда GO в хранимой процедуре  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8584
hulk77,

правильным решением является отказ от использования xp_cmdshell в процедурах прикладного характера. Это административная утилита.
17 авг 16, 13:50    [19552161]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить