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

Откуда:
Сообщений: 6
Добрый день.

Помогите с советом по решению след.задачи:
1. есть процедура которая работает с данными таблицы PLN и должна вернуть результат в количественной форме SELECT count(*) .
DECLARE 
@ID INT, 
@DATA  SMALLDATETIME, 
@TXT VARCHAR(8000),
@RKRM VARCHAR(8000),
..... и др.переменные
 
SELECT @TXT=' SELECT count(*) FROM PLN WHERE DEL = 0'

SELECT @TXT=@TXT+' AND(DATA=CONVERT(DATETIME, ''2011-01-01 00:00:00'', 102))'  //здесь для примера взяла конкретную дату

 SELECT  @RKRM=@TXT+'AND  (STATUS LIKE ''____1%'')  AND ( STATUS LIKE ''1%'') AND (STATUS LIKE ''__5%'' OR STATUS LIKE ''___5%'' or STATUS LIKE ''__6%'' OR STATUS LIKE ''___6%'') '	

....
здесь вычисляются другие переменные в аналогий @RKRM
....

exec sp_test;3 
	@ID, 
	@DATA, 
	@RKRM
....

GO


2. далее данные из 1-ой процедуры должны записываться в другую таблицу SVOD

выполнение процедуры sp_test;3
CREATE PROC sp_test;3
@ID INT, 
@DATA  SMALLDATETIME, 
@RKRM varchar(8000),
....
as

SELECT @ID=ISNULL(MAX(ID),0)+1 FROM SVOD

INSERT INTO SVOD
select @ID, 
         @DATA,
	 @RKRM,
.....
GO


после этого в таблицу записываются не результат вычислений, а текст "SELECT count(*) FROM PLN WHERE DEL = 0 ......" (указан во вложенном файле)

К сообщению приложен файл. Размер - 8Kb
9 апр 12, 10:23    [12385985]     Ответить | Цитировать Сообщить модератору
 Re: В таблицу записывается текст процедуры  [new]
Glory
Member

Откуда:
Сообщений: 104751
Gulsu
после этого в таблицу записываются не результат вычислений, а текст "SELECT count(*) FROM PLN WHERE DEL = 0 ......"

Ну так команда
INSERT INTO SVOD
select @ID,
@DATA,
@RKRM,

и должна так работать

А для выполнения кода, записанного в переменной, существуют команда exec() и процедура sp_executesql
Только вас ожидает много трудностей на пути динамических запросов
9 апр 12, 10:33    [12386021]     Ответить | Цитировать Сообщить модератору
 Re: В таблицу записывается текст процедуры  [new]
Gulsu
Member

Откуда:
Сообщений: 6
Glory
Ну так команда
INSERT INTO SVOD
select @ID,
@DATA,
@RKRM,

и должна так работать



я так в начале писала. Результат: тоже самое... записывается текст переменной. и поэтому я решила переписать и как то сделать с применением EXEC.
9 апр 12, 11:36    [12386468]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить