System Settings MSSQL Tutorial

3>
4>
5> CREATE TABLE authors(
6>    au_id          varchar(11),
7>    au_lname       varchar(40)       NOT NULL,
8>    au_fname       varchar(20)       NOT NULL,
9>    phone          char(12)          NOT NULL DEFAULT ('UNKNOWN'),
10>    address        varchar(40)           NULL,
11>    city           varchar(20)           NULL,
12>    state          char(2)               NULL,
13>    zip            char(5)               NULL,
14>    contract       bit               NOT NULL
15> )
16> GO
1> insert authors values('1',  'Joe',   'Abra',   '111 111-1111', '6 St.', 'Berkeley',  'CA', '11111', 1)
2> insert authors values('2',  'Jack',  'Majo',   '222 222-2222', '3 St.', 'Oakland' ,  'CA', '22222', 1)
3> insert authors values('3',  'Pink',  'Cherry', '333 333-3333', '5 Ln.', 'Vancouver', 'BC', '33333', 1)
4> insert authors values('4',  'Blue',  'Albert', '444 444-4444', '7 Av.', 'Vancouver', 'BC', '44444', 1)
5> insert authors values('5',  'Red',   'Anne',   '555 555-5555', '6 Av.', 'Regina',    'SK', '55555', 1)
6> insert authors values('6',  'Black', 'Michel', '666 666-6666', '3 Pl.', 'Regina',    'SK', '66666', 1)
7> insert authors values('7',  'White', 'Sylvia', '777 777-7777', '1 Pl.', 'Rockville', 'MD', '77777', 1)
8> insert authors values('8',  'Yellow','Heather','888 888-8888', '3 Pu',  'Vacaville', 'CA', '88888', 0)
9> insert authors values('9',  'Gold',  'Dep',    '999 999-9999', '5 Av.', 'Oakland',   'CA', '99999', 0)
10> insert authors values('10', 'Siler', 'Dean',   '000 000-0000', '4 Av.', 'Oakland',   'CA', '00000', 1)
11> GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
(1 rows affected)
1>
2>
3>     ALTER TABLE authors
4>         ADD account VARCHAR(10) NULL
5>     GO
1>     CREATE TABLE bank
2>     (
3>         account VARCHAR(10) NOT NULL PRIMARY KEY,
4>         name VARCHAR(50) NOT NULL
5>     )
6>     GO
1>     CREATE TABLE brokerage
2>     (
3>         account VARCHAR(10) NOT NULL PRIMARY KEY,
4>         name  VARCHAR(50) NOT NULL
5>     )
6>     GO
1>     INSERT bank VALUES ('ABC', 'First Bank')
2>     INSERT bank VALUES ('DEF', 'Second Bank')
3>     INSERT bank VALUES ('XYZ', 'Third Bank')
4>     GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
1>     INSERT brokerage VALUES ('123', 'First Broker')
2>     INSERT brokerage VALUES ('456', 'Second Broker')
3>     INSERT brokerage VALUES ('987', 'Third Broker')
4>     GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
1>     sp_addmessage 56000, 10, 'Attempt to insert or update an invalid account.'
2>     GO
1>
2>
3>     CREATE TRIGGER trAuthors_InsUpd ON Authors
4>     FOR UPDATE
5>     AS
6>     DECLARE @intRowCount int
7>     SELECT @intRowCount = @@RowCount
8>     IF @intRowCount > 0
9>         BEGIN
10>         IF (NOT EXISTS
11>                 (
12>                 SELECT account FROM bank WHERE account IN
13>                     (SELECT account FROM inserted)
14>                 UNION
15>                 SELECT account FROM brokerage WHERE account IN
16>                     (SELECT account FROM inserted)
17>                 )
18>             )
19>                 BEGIN
20>                     RAISERROR(56000, 10, 1)
21>                     ROLLBACK TRANSACTION
22>                     RETURN
23>                 END
24>         END
25>     GO
1>
2> drop TRIGGER trAuthors_InsUpd;
3> drop table authors;
4> drop table bank;
5> drop table brokerage;
6> GO