<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=SQL_Server%2FT-SQL_Tutorial%2FTrigger%2FTrigger_on_view</id>
		<title>SQL Server/T-SQL Tutorial/Trigger/Trigger on view - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=SQL_Server%2FT-SQL_Tutorial%2FTrigger%2FTrigger_on_view"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/Trigger/Trigger_on_view&amp;action=history"/>
		<updated>2026-04-06T17:12:58Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/Trigger/Trigger_on_view&amp;diff=6818&amp;oldid=prev</id>
		<title> в 13:46, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/Trigger/Trigger_on_view&amp;diff=6818&amp;oldid=prev"/>
				<updated>2010-05-26T13:46:16Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:46, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/Trigger/Trigger_on_view&amp;diff=6819&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/Trigger/Trigger_on_view&amp;diff=6819&amp;oldid=prev"/>
				<updated>2010-05-26T10:24:17Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== CREATE INSTEAD OF DELETE TRIGGER ON a view==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; SET NOCOUNT ON&lt;br /&gt;
3&amp;gt;&lt;br /&gt;
4&amp;gt; CREATE TABLE Table1&lt;br /&gt;
5&amp;gt; (a int  PRIMARY KEY,&lt;br /&gt;
6&amp;gt;  b datetime default getdate(),&lt;br /&gt;
7&amp;gt;  c varchar(10))&lt;br /&gt;
8&amp;gt;&lt;br /&gt;
9&amp;gt;&lt;br /&gt;
10&amp;gt; CREATE TABLE Table2&lt;br /&gt;
11&amp;gt;  (a int&lt;br /&gt;
12&amp;gt;   ,message varchar(100))&lt;br /&gt;
13&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; INSERT INTO Table1(a) VALUES (1)&lt;br /&gt;
3&amp;gt; INSERT INTO Table1(a) VALUES (2)&lt;br /&gt;
4&amp;gt; INSERT INTO Table1(a) VALUES (3)&lt;br /&gt;
5&amp;gt; INSERT INTO Table1(a) VALUES (4)&lt;br /&gt;
6&amp;gt;&lt;br /&gt;
7&amp;gt; INSERT INTO Table2 VALUES (1, &amp;quot;first row&amp;quot;)&lt;br /&gt;
8&amp;gt; INSERT INTO Table2 VALUES (1, &amp;quot;second row&amp;quot;)&lt;br /&gt;
9&amp;gt; INSERT INTO Table2 VALUES (2, &amp;quot;first row&amp;quot;)&lt;br /&gt;
10&amp;gt; INSERT INTO Table2 VALUES (2, &amp;quot;second row&amp;quot;)&lt;br /&gt;
11&amp;gt; INSERT INTO Table2 VALUES (2, &amp;quot;third row&amp;quot;)&lt;br /&gt;
12&amp;gt; INSERT INTO Table2 VALUES (3, &amp;quot;first row&amp;quot;)&lt;br /&gt;
13&amp;gt; GO&lt;br /&gt;
Msg 2627, Level 14, State 1, Server J\SQLEXPRESS, Line 2&lt;br /&gt;
Violation of PRIMARY KEY constraint &amp;quot;PK__Table1__686944BF&amp;quot;. Cannot insert duplicate key in object &amp;quot;dbo.Table1&amp;quot;.&lt;br /&gt;
The statement has been terminated.&lt;br /&gt;
Msg 2627, Level 14, State 1, Server J\SQLEXPRESS, Line 3&lt;br /&gt;
Violation of PRIMARY KEY constraint &amp;quot;PK__Table1__686944BF&amp;quot;. Cannot insert duplicate key in object &amp;quot;dbo.Table1&amp;quot;.&lt;br /&gt;
The statement has been terminated.&lt;br /&gt;
Msg 2627, Level 14, State 1, Server J\SQLEXPRESS, Line 4&lt;br /&gt;
Violation of PRIMARY KEY constraint &amp;quot;PK__Table1__686944BF&amp;quot;. Cannot insert duplicate key in object &amp;quot;dbo.Table1&amp;quot;.&lt;br /&gt;
The statement has been terminated.&lt;br /&gt;
Msg 2627, Level 14, State 1, Server J\SQLEXPRESS, Line 5&lt;br /&gt;
Violation of PRIMARY KEY constraint &amp;quot;PK__Table1__686944BF&amp;quot;. Cannot insert duplicate key in object &amp;quot;dbo.Table1&amp;quot;.&lt;br /&gt;
The statement has been terminated.&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; CREATE VIEW join_view AS&lt;br /&gt;
3&amp;gt; SELECT Table1.a as a1, b, c,&lt;br /&gt;
4&amp;gt;        Table2.a as a2, message&lt;br /&gt;
5&amp;gt; FROM Table1 join Table2&lt;br /&gt;
6&amp;gt; ON Table1.a = Table2.a&lt;br /&gt;
7&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; CREATE TRIGGER DEL_JOIN&lt;br /&gt;
3&amp;gt; ON join_view&lt;br /&gt;
4&amp;gt; INSTEAD OF DELETE&lt;br /&gt;
5&amp;gt;&lt;br /&gt;
6&amp;gt; AS&lt;br /&gt;
7&amp;gt;   DELETE Table1&lt;br /&gt;
8&amp;gt;     WHERE a IN (SELECT a1 FROM deleted)&lt;br /&gt;
9&amp;gt;   DELETE Table2&lt;br /&gt;
10&amp;gt;     WHERE a IN (SELECT a2 FROM deleted)&lt;br /&gt;
11&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop TRIGGER DEL_JOIN;&lt;br /&gt;
3&amp;gt; drop VIEW join_view;&lt;br /&gt;
4&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== INSTEAD OF INSERT on a view==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
6&amp;gt; CREATE TABLE orders&lt;br /&gt;
7&amp;gt;         (orderid INT NOT NULL,&lt;br /&gt;
8&amp;gt;         price MONEY NOT NULL,&lt;br /&gt;
9&amp;gt;         quantity INT NOT NULL,&lt;br /&gt;
10&amp;gt;         orderdate DATETIME NOT NULL,&lt;br /&gt;
11&amp;gt;         total AS price * quantity,&lt;br /&gt;
12&amp;gt;         shippeddate AS DATEADD (DAY, 7, orderdate))&lt;br /&gt;
13&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; CREATE VIEW all_orders&lt;br /&gt;
3&amp;gt;         AS SELECT orderid, price, quantity, orderdate, total, shippeddate&lt;br /&gt;
4&amp;gt;         FROM orders&lt;br /&gt;
5&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; CREATE TRIGGER tr_orders ON all_orders INSTEAD OF INSERT&lt;br /&gt;
3&amp;gt; AS BEGIN&lt;br /&gt;
4&amp;gt;    INSERT INTO orders SELECT orderid, price, quantity, orderdate FROM inserted&lt;br /&gt;
5&amp;gt; END&lt;br /&gt;
6&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop trigger tr_orders;&lt;br /&gt;
3&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop view all_orders;&lt;br /&gt;
3&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop table orders;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== INSTEAD OF UPDATE trigger on a view==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
2&amp;gt;&lt;br /&gt;
3&amp;gt;&lt;br /&gt;
4&amp;gt; CREATE TABLE Customers (&lt;br /&gt;
5&amp;gt;      CustomerID nchar (5) NOT NULL ,&lt;br /&gt;
6&amp;gt;      CompanyName nvarchar (40) NOT NULL ,&lt;br /&gt;
7&amp;gt;      ContactName nvarchar (30) NULL ,&lt;br /&gt;
8&amp;gt;      ContactTitle nvarchar (30) NULL ,&lt;br /&gt;
9&amp;gt;      Address nvarchar (60) NULL ,&lt;br /&gt;
10&amp;gt;     City nvarchar (15) NULL ,&lt;br /&gt;
11&amp;gt;     Region nvarchar (15) NULL ,&lt;br /&gt;
12&amp;gt;     PostalCode nvarchar (10) NULL ,&lt;br /&gt;
13&amp;gt;     Country nvarchar (15) NULL ,&lt;br /&gt;
14&amp;gt;     Phone nvarchar (24) NULL ,&lt;br /&gt;
15&amp;gt;     Fax nvarchar (24) NULL&lt;br /&gt;
16&amp;gt; )&lt;br /&gt;
17&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; INSERT Customers VALUES(&amp;quot;1&amp;quot;,&amp;quot;A&amp;quot;,&amp;quot;Maria&amp;quot;,    &amp;quot;Sales&amp;quot;,  &amp;quot;Str. 57&amp;quot;, &amp;quot;Berlin&amp;quot;    ,NULL,&amp;quot;12209&amp;quot;, &amp;quot;Germany&amp;quot;,&amp;quot;111-1111111&amp;quot;,&amp;quot;111-1111111&amp;quot;)&lt;br /&gt;
3&amp;gt; INSERT Customers VALUES(&amp;quot;2&amp;quot;,&amp;quot;M&amp;quot;,&amp;quot;Joe&amp;quot;,      &amp;quot;Owner&amp;quot;,  &amp;quot;Ave. 231&amp;quot;,&amp;quot;Vancouver&amp;quot; ,NULL,&amp;quot;05023&amp;quot;, &amp;quot;Mexico&amp;quot;, &amp;quot;(222) 222-3332&amp;quot;,NULL)&lt;br /&gt;
4&amp;gt; INSERT Customers VALUES(&amp;quot;3&amp;quot;,&amp;quot;H&amp;quot;,&amp;quot;Thomas&amp;quot;,   &amp;quot;Sales&amp;quot;,  &amp;quot;Sq.  111&amp;quot;,&amp;quot;London&amp;quot;    ,NULL,&amp;quot;1D00P&amp;quot;, &amp;quot;UK&amp;quot;,     &amp;quot;(444) 444-4444&amp;quot;,&amp;quot;(444) 444-4444&amp;quot;)&lt;br /&gt;
5&amp;gt; INSERT Customers VALUES(&amp;quot;4&amp;quot;,&amp;quot;B&amp;quot;,&amp;quot;Berg&amp;quot;,     &amp;quot;Order&amp;quot;,  &amp;quot;Blv    8&amp;quot;,&amp;quot;Toronto&amp;quot;   ,NULL,&amp;quot;00222&amp;quot;, &amp;quot;Sweden&amp;quot;, &amp;quot;4444-55 55 65&amp;quot;,&amp;quot;5555-55 55 55&amp;quot;)&lt;br /&gt;
6&amp;gt; INSERT Customers VALUES(&amp;quot;5&amp;quot;,&amp;quot;S&amp;quot;,&amp;quot;Moos&amp;quot;,     &amp;quot;Sales&amp;quot;,  &amp;quot;Fort  57&amp;quot;,&amp;quot;New York&amp;quot;  ,NULL,&amp;quot;68306&amp;quot;, &amp;quot;Germany&amp;quot;,&amp;quot;6666-66666&amp;quot;,&amp;quot;6666-77777&amp;quot;)&lt;br /&gt;
7&amp;gt; INSERT Customers VALUES(&amp;quot;6&amp;quot;,&amp;quot;F&amp;quot;,&amp;quot;Cite&amp;quot;,     &amp;quot;Manager&amp;quot;,&amp;quot;24      &amp;quot;,&amp;quot;Dalles&amp;quot;    ,NULL,&amp;quot;67000&amp;quot;, &amp;quot;France&amp;quot;, &amp;quot;88.60.15.31&amp;quot;,&amp;quot;88.60.15.32&amp;quot;)&lt;br /&gt;
8&amp;gt; INSERT Customers VALUES(&amp;quot;7&amp;quot;,&amp;quot;C&amp;quot;,&amp;quot;Sommer&amp;quot;,   &amp;quot;Owner&amp;quot;,  &amp;quot;Araq, 67&amp;quot;,&amp;quot;Paris&amp;quot;     ,NULL,&amp;quot;28023&amp;quot;, &amp;quot;Spain&amp;quot;,  &amp;quot;(91) 555 22 82&amp;quot;,&amp;quot;(91) 555 91 99&amp;quot;)&lt;br /&gt;
9&amp;gt; INSERT Customers VALUES(&amp;quot;8&amp;quot;,&amp;quot;P&amp;quot;,&amp;quot;Leb&amp;quot;,      &amp;quot;Owner&amp;quot;,  &amp;quot;12      &amp;quot;,&amp;quot;Beijing&amp;quot;   ,NULL,&amp;quot;13008&amp;quot;, &amp;quot;France&amp;quot;, &amp;quot;91.24.45.40&amp;quot;,&amp;quot;91.24.45.41&amp;quot;)&lt;br /&gt;
10&amp;gt; INSERT Customers VALUES(&amp;quot;9&amp;quot;,&amp;quot;D&amp;quot;,&amp;quot;Elizabeth&amp;quot;,&amp;quot;Manager&amp;quot;,&amp;quot;23 Blvd.&amp;quot;,&amp;quot;Tsawassen&amp;quot;,&amp;quot;BC&amp;quot;, &amp;quot;T2F8M4&amp;quot;,&amp;quot;Canada&amp;quot;, &amp;quot;(604) 555-4729&amp;quot;,&amp;quot;(604) 555-3745&amp;quot;)&lt;br /&gt;
11&amp;gt; go&lt;br /&gt;
(1 rows affected)&lt;br /&gt;
(1 rows affected)&lt;br /&gt;
(1 rows affected)&lt;br /&gt;
(1 rows affected)&lt;br /&gt;
(1 rows affected)&lt;br /&gt;
(1 rows affected)&lt;br /&gt;
(1 rows affected)&lt;br /&gt;
(1 rows affected)&lt;br /&gt;
(1 rows affected)&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt;    CREATE VIEW CustomerOrders_vw&lt;br /&gt;
3&amp;gt;    WITH SCHEMABINDING&lt;br /&gt;
4&amp;gt;    AS&lt;br /&gt;
5&amp;gt;    SELECT   cu.rupanyName&lt;br /&gt;
6&amp;gt;    FROM     dbo.Customers  AS cu&lt;br /&gt;
7&amp;gt;    GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt;&lt;br /&gt;
3&amp;gt;&lt;br /&gt;
4&amp;gt;&lt;br /&gt;
5&amp;gt;    create TRIGGER trCustomerOrderUpdate ON CustomerOrders_vw&lt;br /&gt;
6&amp;gt;    INSTEAD OF UPDATE&lt;br /&gt;
7&amp;gt;    AS&lt;br /&gt;
8&amp;gt;    BEGIN&lt;br /&gt;
9&amp;gt;        IF (SELECT COUNT(*) FROM Inserted) &amp;gt; 0&lt;br /&gt;
10&amp;gt;        BEGIN&lt;br /&gt;
11&amp;gt;            IF (COLUMNS_UPDATED() | 96) != 96&lt;br /&gt;
12&amp;gt;            BEGIN&lt;br /&gt;
13&amp;gt;                RAISERROR(&amp;quot;Updates only supported for UnitPrice and Quantity&amp;quot;, 16,1)&lt;br /&gt;
14&amp;gt;            END&lt;br /&gt;
15&amp;gt;            ELSE BEGIN&lt;br /&gt;
16&amp;gt;                RAISERROR(&amp;quot;again&amp;quot;, 16,1)&lt;br /&gt;
17&amp;gt;&lt;br /&gt;
18&amp;gt;            END&lt;br /&gt;
19&amp;gt;        END&lt;br /&gt;
20&amp;gt;    END&lt;br /&gt;
21&amp;gt; GO&lt;br /&gt;
1&amp;gt; drop TRIGGER trCustomerOrderUpdate;&lt;br /&gt;
2&amp;gt; drop view CustomerOrders_vw;&lt;br /&gt;
3&amp;gt; drop table Customers;&lt;br /&gt;
4&amp;gt; GO&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>