powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Мне нужны или массивы в MSSQL 2000 или передаче таблицы в хранимую процедуру...
2 сообщений из 2, страница 1 из 1
Мне нужны или массивы в MSSQL 2000 или передаче таблицы в хранимую процедуру...
    #32019364
Фотография XDefender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче так...
Мне нужны или массивы в 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
Мне нужны или массивы в MSSQL 2000 или передаче таблицы в хранимую процедуру...
    #32019383
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
трудно понять что же Вы хотите, может так пойдёт:

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


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