#sql
#sql
Вопрос:
Мне нужно написать триггер SQL, который отображает данные из столбцов из двух таблиц. Мне нужно, чтобы этот триггер выполнялся, как только в моей таблице транзакций была добавлена новая строка или обновлена существующая строка. это то, что у меня есть до сих пор, но оно не работает, просто печатает пустую таблицу всякий раз, когда в таблицу вносятся изменения.
create or alter trigger TransactionInfo
on [dbo].[Transactions]
after insert, update
as
begin
declare @pickupDate date;
declare @returnDate date;
declare @Make varchar (25);
declare @model varchar (25);
declare @tID int;
select @pickupDate, @returnDate, @Make, @model, @tID
from[dbo].[Transactions], [dbo].[CAR]
end
Комментарии:
1. Вредные привычки: использование объединений в старом стиле — этот стиль списка таблиц, разделенных запятыми , в старом стиле был заменен соответствующим
JOIN
синтаксисом ANSI в стандарте SQL ANSI- 92 ( почти 30 лет назад), и его использование не рекомендуется2. Также: триггеры работают в фоновом режиме — они не отображают данные из столбцов или что-то в этом роде. Триггеры будут добавлять записи в таблицу аудита или обновлять некоторые столбцы выбора, но они ничего не выводят, не печатают и не отображают ….
3. В дополнение к комментариям @marc_s вы объявляете переменные, которые не заполнены, поэтому this
select
from tables ничего не вернет4. Триггеры Sql Server могут возвращать результирующий набор в настоящее время. Примечание. Возвращаемые результаты Возможность возврата результатов из триггеров будет удалена в будущей версии SQL Server. Триггеры, возвращающие результирующие наборы, могут вызвать неожиданное поведение в приложениях, которые не предназначены для работы с ними.