Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Мне нужны или массивы в MSSQL 2000 или передаче таблицы в хранимую процедуру... / 2 сообщений из 2, страница 1 из 1
19.12.2001, 16:55
    #32019364
XDefender
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мне нужны или массивы в MSSQL 2000 или передаче таблицы в хранимую процедуру...
Короче так...
Мне нужны или массивы в MSSQL 2000 или передаче таблицы в хранимую процедуру...

Для чего ?
К примеру у меня упдэйтется таблица Table1.
В тригере стоит условие
if exists(select top 1 ID from Inserted I where Registred=1 and (Select top 1 Registred from Deleted Where ID=I.ID)=1)
BEGIN
exec Registration (select ID from Inserted I where Registred=1 and (Select top 1 Registred from Deleted Where ID=I.ID)=1)
END

/* Даже условия иногда проверять не нужно, просто запуск процедуры с этими параметрами, ну это не к моей теме*/

Так что, как в процедуре все это принять ???
Да, как там организовать что-то вродебы цикла по этой таблице, но без курсоров.
Я знаю что можно с помощью SELECT это сделать.

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

select @ExecString=@ExecString+@TableName1+'.'+Name+'='+@TableName2+'.'+Name+', '
from SysColumns
where ID=@ID_Table order by colorder

Т.е. у меня накапливается значение в переменной @ExecString.
ВНИМАНИЕ ВОПРОС: А вот мне бы хотелось тут вызывать какую-то процедуру.... Как это сделать ???
...
Рейтинг: 0 / 0
20.12.2001, 07:19
    #32019383
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мне нужны или массивы в MSSQL 2000 или передаче таблицы в хранимую процедуру...
трудно понять что же Вы хотите, может так пойдёт:

declare @cnt int, @id int

select @cnt=count(*), @id=max(i.ID)
from inserted i, deleted d
where i.Registred=1 and d.Registred=1 and i.ID=d.ID

if @cnt=1 exec Registration @id

Если же у Вас несколько значений адпейтится за раз, то я бы сделал постоянную таблицу, куда бы записывал ID и некий уникальный идентификатор, который затем бы и передавал в процедуре

еще пара замечаний

- конструкции if exists(select top 1 ID from... и if exists(select * from... абсолютно равнозначны, мне лично лень писать лишние символы
- and (Select top 1 Registred from Deleted Where ID=I.ID)=1 - что-то я сомневаюсь что Вы это осознанно написали. Вы же не знаете какое значение выберется когда стоит top 1

и мой Вам совет: пока опыта на SQL нет - не используйте динамических запросов
не туда это Вас приведёт
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Мне нужны или массивы в MSSQL 2000 или передаче таблицы в хранимую процедуру... / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]