Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 можно ли запустить скрипт не выгружая в файл  [new]
13131313
Guest
например есть процедура записанная в таблицу. как её запустить в текущей базе не выгружая в файл(а дальше osql). процедура может быть не одна, в выгруженном файле может быть несколько мегабайт.
мобыть запихать все это в поле типа text
create table #tmp( txt nvarchar(50) )

insert into #tmp(txt)
select ('create procedure dbo.test')

insert into #tmp(txt)
select ('as')

insert into #tmp(txt)
select ('select * from master..sysobjects')

insert into #tmp(txt)
select ('GO')
16 авг 05, 15:07    [1790668]     Ответить | Цитировать Сообщить модератору
 Re: можно ли запустить скрипт не выгружая в файл  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

В базе master есть процедура sp_execresultset.
Выполняет DSQL размером до 1 мега. смотреть туда, солить по вкусу.

--
-------------------------
There's no silver bullet!

Posted via ActualForum NNTP Server 1.2

16 авг 05, 15:19    [1790739]     Ответить | Цитировать Сообщить модератору
 Re: можно ли запустить скрипт не выгружая в файл  [new]
13131313
Guest
2 locky

в том то и дело что я не знаю какой длины будет скрипт и сколько строк будет занимать в таблице.
16 авг 05, 15:46    [1790888]     Ответить | Цитировать Сообщить модератору
 Re: можно ли запустить скрипт не выгружая в файл  [new]
Glory
Member

Откуда:
Сообщений: 104760
13131313
2 locky

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

Ну так "солите на свой вкус"
16 авг 05, 15:50    [1790910]     Ответить | Цитировать Сообщить модератору
 Re: можно ли запустить скрипт не выгружая в файл  [new]
13131313
Guest
мрачновато получается
16 авг 05, 15:57    [1790952]     Ответить | Цитировать Сообщить модератору
 Re: можно ли запустить скрипт не выгружая в файл  [new]
13131313
Guest
2 Glory

интересно, и как я должен "солить" если не знаю сколько строк у меня будет в скрипте? как задекларировать эту тучу переменных в процедуре? у меня мобыть 1 строка, а может быть тысячи 2-3.
16 авг 05, 16:03    [1790995]     Ответить | Цитировать Сообщить модератору
 Re: можно ли запустить скрипт не выгружая в файл  [new]
13131313
Guest
извращение получается с декларированием переменного кол-ва переменных, да уж.
16 авг 05, 16:08    [1791036]     Ответить | Цитировать Сообщить модератору
 Re: можно ли запустить скрипт не выгружая в файл  [new]
Glory
Member

Откуда:
Сообщений: 104760
как задекларировать эту тучу переменных в процедуре?
А вы посмотрели как это сделано в sp_execresultset ???
16 авг 05, 16:08    [1791039]     Ответить | Цитировать Сообщить модератору
 Re: можно ли запустить скрипт не выгружая в файл  [new]
13131313
Guest
смотрел, потому и спросил.
динамически никак не задекларировать. или вы советуете прописывать несколько тыщ переменных? это ж не дело.

повторяю - у меня может быть от одной-двух строк до нескольких тысяч
придется через файл все делать
16 авг 05, 16:33    [1791224]     Ответить | Цитировать Сообщить модератору
 Re: можно ли запустить скрипт не выгружая в файл  [new]
Glory
Member

Откуда:
Сообщений: 104760
или вы советуете прописывать несколько тыщ переменных? это ж не дело.

А в чем проблема один раз написать процедуру ?

динамически никак не задекларировать.
Можно и динамически. Только придется опять же самому писать скрипт.
16 авг 05, 16:43    [1791302]     Ответить | Цитировать Сообщить модератору
 Re: можно ли запустить скрипт не выгружая в файл  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034

13131313 wrote:
> 2 Glory
>
> интересно, и как я должен "солить" если не знаю сколько строк у меня
> будет в скрипте? как задекларировать эту тучу переменных в процедуре? у
> меня мобыть 1 строка, а может быть тысячи 2-3.
вах!!!!
ну посмотрите то на процу!!!
там ведь как сделано? проца принимает statement, который возврашает
набор строк с DSQL. затем выполняет его.
трудно что-ли написать
create table #tmp( txt nvarchar(50),id int identity(1,1) )

insert into #tmp(txt)
select ('create procedure dbo.test')

insert into #tmp(txt)
select ('as')

insert into #tmp(txt)
select ('select * from master..sysobjects')

exec sp_execresultset 'select txt from #tmp order by id'
?


--
-------------------------
There's no silver bullet!

Posted via ActualForum NNTP Server 1.2

16 авг 05, 18:37    [1792014]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить