Как обновить из таблицы table1 table2 в SQL с использованием курсоров и триггеров Снегурочка
Я работаю в asp.net хотите обновить записи из одной таблицы в другую. Предположим, что у пользователя есть свои данные о посещаемости в файле excel. Я сделал форму просмотра, откуда пользователь будет загружать файл excel . Он работает очень хорошо и хранит данные из excel в базу данных SQL. (Имя таблицы= Import_Attendance_imp)
Теперь я хочу обновить еще одну таблицу, где i. e TblDailyAttandence
Я использую триггер, но он обновляет только одну строку, я думаю, что должен быть использован курсор
Я понятия не имею о курсоре, как использовать курсор в моем триггере.
пожалуйста, помогите мне
спасибо заранее
Что я уже пробовал:
ALTER TRIGGER [dbo].[TRIG_Update_Attendance_imp]
На [dbo].[Import_Attendance_imp]
ПОСЛЕ ВСТАВКИ
АС
НАЧАТЬ
ОБЪЯВЛЯТЬ
@EmpCode VARCHAR(100),
@Monthyear VARCHAR(100),
@AtCol VARCHAR(100),
@Status VARCHAR(100),
@in VARCHAR(100),
@inTime VARCHAR (100),
@out VARCHAR(100),
@outTime VARCHAR(100)
Выберите @AtCol = Att,@in=[in],@inTime=inTime,@out=[out],@outTime=outTime, @EmpCode = empcode, @Status = [status],@Monthyear=Monthyear FROM INSERTED
DECLARE @query VARCHAR (MAX) = "
Набор запроса @ = 'обновление TblDailyAttandence комплект '+@AtCol+' = "'+@статус+"','+@в+' = "'+@Интайм+"','+@выход+' = "'+@outtime+"'
Где EmpCode = " '+@EmpCode+ "'и Monthyear=" '+@Monthyear+""
PRINT @query
выполнение запроса)
КОНЕЦ
ZurdoDev
Триггеры работают с наборами данных, поэтому вы никогда не захотите использовать такие переменные, потому что они будут работать только с одной записью и испортят все остальные записи во вставленных или удаленных таблицах.
Тебе не нужен спусковой крючок. В вашей процедуре обновления просто обновите таблицу посещаемости.
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]