Maintenance of the referential constraint : Maintain Constaints « Constraints « SQL Server / T-SQL

SQL Server / T-SQL
1. Aggregate Functions
2. Analytical Functions
3. Constraints
4. Cursor
5. Data Set
6. Data Type
7. Database
8. Date Timezone
9. Index
10. Insert Delete Update
11. Math Functions
12. Select Query
13. Sequence
14. Store Procedure Function
15. String Functions
16. Subquery
17. System
18. Table
19. Table Joins
20. Transact SQL
21. Transaction
22. Trigger
23. View
24. XML
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
C# / C Sharp
C# / CSharp Tutorial
ASP.Net
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
PHP
Python
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
SQL Server / T-SQL » Constraints » Maintain Constaints 
Maintenance of the referential constraint


28>
29CREATE TABLE works_on       (emp_no       INTEGER NOT NULL,
30>                         project_no    CHAR(4NOT NULL,
31>                         job CHAR (15NULL,
32>                         enter_date    DATETIME NULL)
33>
34insert into works_on values (1'p1', 'analyst', '1997.10.1')
35insert into works_on values (1'p3', 'manager', '1999.1.1')
36insert into works_on values (2'p2', 'clerk',   '1998.2.15')
37insert into works_on values (2'p2',  NULL,     '1998.6.1')
38insert into works_on values (3'p2',  NULL,     '1997.12.15')
39insert into works_on values (4'p3', 'analyst', '1998.10.15')
40insert into works_on values (5'p1', 'manager', '1998.4.15')
41insert into works_on values (6'p1',  NULL,     '1998.8.1')
42insert into works_on values (7'p2', 'clerk',   '1999.2.1')
43insert into works_on values (8'p3', 'clerk',   '1997.11.15')
44insert into works_on values (7'p1', 'clerk',   '1998.1.4')
45>
46select from works_on
47> GO

(rows affected)

(rows affected)

(rows affected)

(rows affected)

(rows affected)

(rows affected)

(rows affected)

(rows affected)

(rows affected)

(rows affected)

(rows affected)
emp_no      project_no job             enter_date
----------- ---------- --------------- -----------------------
          p1         analyst         1997-10-01 00:00:00.000
          p3         manager         1999-01-01 00:00:00.000
          p2         clerk           1998-02-15 00:00:00.000
          p2         NULL            1998-06-01 00:00:00.000
          p2         NULL            1997-12-15 00:00:00.000
          p3         analyst         1998-10-15 00:00:00.000
          p1         manager         1998-04-15 00:00:00.000
          p1         NULL            1998-08-01 00:00:00.000
          p2         clerk           1999-02-01 00:00:00.000
          p3         clerk           1997-11-15 00:00:00.000
          p1         clerk           1998-01-04 00:00:00.000

(11 rows affected)
1CREATE TABLE employee  (emp_no    INTEGER NOT NULL,
2>                         emp_fname CHAR(20NOT NULL,
3>                         emp_lname CHAR(20NOT NULL,
4>                         dept_no   CHAR(4NULL)
5>
6insert into employee values(1,  'Matthew', 'Smith',    'd3')
7insert into employee values(2,  'Ann',     'Jones',    'd3')
8insert into employee values(3,  'John',    'Barrimore','d1')
9insert into employee values(4,  'James',   'James',    'd2')
10insert into employee values(5,  'Elsa',    'Bertoni',  'd2')
11insert into employee values(6,  'Elke',    'Hansel',   'd2')
12insert into employee values(7,  'Sybill',  'Moser',    'd1')
13>
14select from employee
15> GO

(rows affected)

(rows affected)

(rows affected)

(rows affected)

(rows affected)

(rows affected)

(rows affected)
emp_no      emp_fname            emp_lname            dept_no
----------- -------------------- -------------------- -------
          Matthew              Smith                d3
          Ann                  Jones                d3
          John                 Barrimore            d1
          James                James                d2
          Elsa                 Bertoni              d2
          Elke                 Hansel               d2
          Sybill               Moser                d1

(rows affected)
1>
2> -- Maintenance of the referential constraint
3>
4CREATE PROCEDURE delete_emp @employee_no INT, @counter INT OUTPUT
5> AS SELECT @counter = COUNT(*FROM works_on WHERE emp_no = @employee_no
6>    DELETE FROM employee WHERE emp_no = @employee_no
7>    DELETE FROM works_on WHERE emp_no = @employee_no
8> GO
1>
2> DECLARE @C int
3> EXEC delete_emp 1, @C
4> Print @C
5> GO

(rows affected)

(rows affected)

(rows affected)

1>
2select from employee
3select from works_on
4> GO
emp_no      emp_fname            emp_lname            dept_no
----------- -------------------- -------------------- -------
          Ann                  Jones                d3
          John                 Barrimore            d1
          James                James                d2
          Elsa                 Bertoni              d2
          Elke                 Hansel               d2
          Sybill               Moser                d1

(rows affected)
emp_no      project_no job             enter_date
----------- ---------- --------------- -----------------------
          p2         clerk           1998-02-15 00:00:00.000
          p2         NULL            1998-06-01 00:00:00.000
          p2         NULL            1997-12-15 00:00:00.000
          p3         analyst         1998-10-15 00:00:00.000
          p1         manager         1998-04-15 00:00:00.000
          p1         NULL            1998-08-01 00:00:00.000
          p2         clerk           1999-02-01 00:00:00.000
          p3         clerk           1997-11-15 00:00:00.000
          p1         clerk           1998-01-04 00:00:00.000

(rows affected)
1>
2>
3> drop procedure delete_emp
4> drop table employee
5> drop table works_on
6> GO
1>
2>
           
       
Related examples in the same category
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.