<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=SQL_Server%2FT-SQL_Tutorial%2FConstraints%2FForeign_Key</id>
		<title>SQL Server/T-SQL Tutorial/Constraints/Foreign Key - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.sqle.ru/index.php?action=history&amp;feed=atom&amp;title=SQL_Server%2FT-SQL_Tutorial%2FConstraints%2FForeign_Key"/>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/Constraints/Foreign_Key&amp;action=history"/>
		<updated>2026-05-24T02:19:56Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/Constraints/Foreign_Key&amp;diff=7029&amp;oldid=prev</id>
		<title> в 13:46, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/Constraints/Foreign_Key&amp;diff=7029&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://www.sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/Constraints/Foreign_Key&amp;diff=7030&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.sqle.ru/index.php?title=SQL_Server/T-SQL_Tutorial/Constraints/Foreign_Key&amp;diff=7030&amp;oldid=prev"/>
				<updated>2010-05-26T10:25:03Z</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;== Adding a FOREIGN KEY to the Employees Table==&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 Employees&lt;br /&gt;
7&amp;gt; (empid int NOT NULL primary key,&lt;br /&gt;
8&amp;gt;  mgrid int NULL,&lt;br /&gt;
9&amp;gt;  empname varchar(25) NOT NULL,&lt;br /&gt;
10&amp;gt;  salary money NOT NULL);&lt;br /&gt;
11&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; INSERT INTO employees(empid, mgrid, empname, salary) VALUES( 1, NULL, &amp;quot;Nancy&amp;quot;,  $10000.00)&lt;br /&gt;
3&amp;gt; INSERT INTO employees(empid, mgrid, empname, salary) VALUES( 2,    1, &amp;quot;Andrew&amp;quot;,  $5000.00)&lt;br /&gt;
4&amp;gt; INSERT INTO employees(empid, mgrid, empname, salary) VALUES( 3,    1, &amp;quot;Janet&amp;quot;,   $5000.00)&lt;br /&gt;
5&amp;gt; INSERT INTO employees(empid, mgrid, empname, salary) VALUES( 4,    1, &amp;quot;Margaret&amp;quot;,$5000.00)&lt;br /&gt;
6&amp;gt; INSERT INTO employees(empid, mgrid, empname, salary) VALUES( 5,    2, &amp;quot;Steven&amp;quot;,  $2500.00)&lt;br /&gt;
7&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&amp;gt;&lt;br /&gt;
2&amp;gt;&lt;br /&gt;
3&amp;gt; ALTER TABLE Employees ADD CONSTRAINT FK_Employees_Employees&lt;br /&gt;
4&amp;gt;   FOREIGN KEY(mgrid)&lt;br /&gt;
5&amp;gt;   REFERENCES Employees(empid);&lt;br /&gt;
6&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop table Employees;&lt;br /&gt;
3&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt;&lt;br /&gt;
3&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== A statement that adds a foreign key constraint==&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;
ALTER TABLE YourTableName WITH CHECK&lt;br /&gt;
ADD FOREIGN KEY (AccountNo) REFERENCES AnotherTableName(AccountNo)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Cascading Updates and Deletes==&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 primary key ,&lt;br /&gt;
8&amp;gt;      CustomerID nchar (5) NULL ,&lt;br /&gt;
9&amp;gt;      EmployeeID int NULL ,&lt;br /&gt;
10&amp;gt;     OrderDate datetime NULL ,&lt;br /&gt;
11&amp;gt;     RequiredDate datetime NULL ,&lt;br /&gt;
12&amp;gt;     ShippedDate datetime NULL ,&lt;br /&gt;
13&amp;gt;     ShipVia int NULL ,&lt;br /&gt;
14&amp;gt;     Freight money NULL DEFAULT (0),&lt;br /&gt;
15&amp;gt;     ShipName nvarchar (40) NULL ,&lt;br /&gt;
16&amp;gt;     ShipAddress nvarchar (60) NULL ,&lt;br /&gt;
17&amp;gt;     ShipCity nvarchar (15) NULL ,&lt;br /&gt;
18&amp;gt;     ShipRegion nvarchar (15) NULL ,&lt;br /&gt;
19&amp;gt;     ShipPostalCode nvarchar (10) NULL ,&lt;br /&gt;
20&amp;gt;     ShipCountry nvarchar (15) NULL&lt;br /&gt;
21&amp;gt; )&lt;br /&gt;
22&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;    CREATE TABLE OrderDetails&lt;br /&gt;
5&amp;gt;    (&lt;br /&gt;
6&amp;gt;       OrderID      int           NOT NULL,&lt;br /&gt;
7&amp;gt;       PartNo       varchar(10)   NOT NULL,&lt;br /&gt;
8&amp;gt;       Description  varchar(25)   NOT NULL,&lt;br /&gt;
9&amp;gt;       UnitPrice    money         NOT NULL,&lt;br /&gt;
10&amp;gt;       Qty          int           NOT NULL,&lt;br /&gt;
11&amp;gt;       CONSTRAINT    PKOrderDetails&lt;br /&gt;
12&amp;gt;          PRIMARY KEY   (OrderID, PartNo),&lt;br /&gt;
13&amp;gt;       CONSTRAINT    FKOrderContainsDetails&lt;br /&gt;
14&amp;gt;          FOREIGN KEY   (OrderID)&lt;br /&gt;
15&amp;gt;             REFERENCES Orders(OrderID)&lt;br /&gt;
16&amp;gt;             ON UPDATE  NO ACTION&lt;br /&gt;
17&amp;gt;             ON DELETE  CASCADE&lt;br /&gt;
18&amp;gt;    )&lt;br /&gt;
19&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop table OrderDetails;&lt;br /&gt;
3&amp;gt; drop table Orders;&lt;br /&gt;
4&amp;gt; GO&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== FOREIGN KEY Constraints==&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;
&amp;lt;column name&amp;gt; &amp;lt;data type&amp;gt; &amp;lt;nullability&amp;gt;&lt;br /&gt;
FOREIGN KEY REFERENCES &amp;lt;table name&amp;gt;(&amp;lt;column name&amp;gt;)&lt;br /&gt;
    [ON DELETE {CASCADE|NO ACTION}]&lt;br /&gt;
    [ON UPDATE {CASCADE|NO ACTION}]&lt;br /&gt;
11&amp;gt; CREATE TABLE Customers (&lt;br /&gt;
12&amp;gt;     CustomerID nchar (5) NOT NULL PRIMARY KEY ,&lt;br /&gt;
13&amp;gt;     CompanyName nvarchar (40) NOT NULL ,&lt;br /&gt;
14&amp;gt;     ContactName nvarchar (30) NULL ,&lt;br /&gt;
15&amp;gt;     ContactTitle nvarchar (30) NULL ,&lt;br /&gt;
16&amp;gt;     Address nvarchar (60) NULL ,&lt;br /&gt;
17&amp;gt;     City nvarchar (15) NULL ,&lt;br /&gt;
18&amp;gt;     Region nvarchar (15) NULL ,&lt;br /&gt;
19&amp;gt;     PostalCode nvarchar (10) NULL ,&lt;br /&gt;
20&amp;gt;     Country nvarchar (15) NULL ,&lt;br /&gt;
21&amp;gt;     Phone nvarchar (24) NULL ,&lt;br /&gt;
22&amp;gt;     Fax nvarchar (24) NULL&lt;br /&gt;
23&amp;gt; )&lt;br /&gt;
24&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;    CREATE TABLE Orders&lt;br /&gt;
5&amp;gt;    (&lt;br /&gt;
6&amp;gt;       OrderID      int   IDENTITY   NOT NULL&lt;br /&gt;
7&amp;gt;          PRIMARY KEY,&lt;br /&gt;
8&amp;gt;       CustomerNo   nchar              NOT NULL&lt;br /&gt;
9&amp;gt;          FOREIGN KEY REFERENCES Customers(CustomerID),&lt;br /&gt;
10&amp;gt;       OrderDate    smalldatetime    NOT NULL,&lt;br /&gt;
11&amp;gt;       EmployeeID   int              NOT NULL&lt;br /&gt;
12&amp;gt;    )&lt;br /&gt;
13&amp;gt;    GO&lt;br /&gt;
Msg 1753, Level 16, State 1, Server J\SQLEXPRESS, Line 4&lt;br /&gt;
Column &amp;quot;Customers.CustomerID&amp;quot; is not the same length as referencing column &amp;quot;Orders.CustomerNo&amp;quot; in foreign key &amp;quot;FK__Orders__Customer__43C1CFF5&amp;quot;. Columns participating in a foreign key relationship must&lt;br /&gt;
 be defined with the same length.&lt;br /&gt;
Msg 1750, Level 16, State 1, Server J\SQLEXPRESS, Line 4&lt;br /&gt;
Could not create constraint. See previous errors.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== ON DELETE and ON UPDATE Options==&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;
The use of the ON DELETE and ON UPDATE options.&lt;br /&gt;
7&amp;gt;&lt;br /&gt;
8&amp;gt;&lt;br /&gt;
9&amp;gt; CREATE TABLE department(&lt;br /&gt;
10&amp;gt;    dept_no CHAR(4) NOT NULL,&lt;br /&gt;
11&amp;gt;    dept_name CHAR(25) NOT NULL,&lt;br /&gt;
12&amp;gt;    location CHAR(30) NULL,&lt;br /&gt;
13&amp;gt;    CONSTRAINT prim_dept PRIMARY KEY (dept_no))&lt;br /&gt;
14&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; CREATE TABLE employee (&lt;br /&gt;
3&amp;gt;            emp_no INTEGER NOT NULL,&lt;br /&gt;
4&amp;gt;            emp_fname CHAR(20) NOT NULL,&lt;br /&gt;
5&amp;gt;            emp_lname CHAR(20) NOT NULL,&lt;br /&gt;
6&amp;gt;            dept_no CHAR(4) NULL,&lt;br /&gt;
7&amp;gt;            CONSTRAINT prim_emp PRIMARY KEY (emp_no),&lt;br /&gt;
8&amp;gt;            CONSTRAINT foreign_emp FOREIGN KEY(dept_no) REFERENCES&lt;br /&gt;
9&amp;gt;       department(dept_no))&lt;br /&gt;
10&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; CREATE TABLE project (project_no CHAR(4) NOT NULL,&lt;br /&gt;
3&amp;gt;            project_name CHAR(15) NOT NULL,&lt;br /&gt;
4&amp;gt;            budget FLOAT NULL,&lt;br /&gt;
5&amp;gt;            CONSTRAINT prim_proj PRIMARY KEY (project_no))&lt;br /&gt;
6&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; CREATE TABLE myProject(&lt;br /&gt;
3&amp;gt;       emp_no INTEGER NOT NULL,&lt;br /&gt;
4&amp;gt;       project_no CHAR(4) NOT NULL,&lt;br /&gt;
5&amp;gt;       job CHAR (15) NULL,&lt;br /&gt;
6&amp;gt;       enter_date DATETIME NULL,&lt;br /&gt;
7&amp;gt;       CONSTRAINT prim_works1 PRIMARY KEY(emp_no, project_no),&lt;br /&gt;
8&amp;gt;       CONSTRAINT foreign1_works1 FOREIGN KEY(emp_no)      REFERENCES employee(emp_no) ON DELETE CASCADE,&lt;br /&gt;
9&amp;gt;       CONSTRAINT foreign2_works1 FOREIGN KEY(project_no)  REFERENCES project(project_no) ON UPDATE CASCADE)&lt;br /&gt;
10&amp;gt;&lt;br /&gt;
11&amp;gt;&lt;br /&gt;
12&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop table myProject;&lt;br /&gt;
3&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop table project;&lt;br /&gt;
3&amp;gt; GO&lt;br /&gt;
1&amp;gt; drop table employee;&lt;br /&gt;
2&amp;gt; GO&lt;br /&gt;
1&amp;gt; drop table department;&lt;br /&gt;
2&amp;gt; GO&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Re-creating the FOREIGN KEY with NO ACTION (Implicitly)==&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 Employees&lt;br /&gt;
7&amp;gt; (empid int NOT NULL primary key,&lt;br /&gt;
8&amp;gt;  mgrid int NULL,&lt;br /&gt;
9&amp;gt;  empname varchar(25) NOT NULL,&lt;br /&gt;
10&amp;gt;  salary money NOT NULL);&lt;br /&gt;
11&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; INSERT INTO employees(empid, mgrid, empname, salary) VALUES( 1, NULL, &amp;quot;Nancy&amp;quot;,  $10000.00)&lt;br /&gt;
3&amp;gt; INSERT INTO employees(empid, mgrid, empname, salary) VALUES( 2,    1, &amp;quot;Andrew&amp;quot;,  $5000.00)&lt;br /&gt;
4&amp;gt; INSERT INTO employees(empid, mgrid, empname, salary) VALUES( 3,    1, &amp;quot;Janet&amp;quot;,   $5000.00)&lt;br /&gt;
5&amp;gt; INSERT INTO employees(empid, mgrid, empname, salary) VALUES( 4,    1, &amp;quot;Margaret&amp;quot;,$5000.00)&lt;br /&gt;
6&amp;gt; INSERT INTO employees(empid, mgrid, empname, salary) VALUES( 5,    2, &amp;quot;Steven&amp;quot;,  $2500.00)&lt;br /&gt;
7&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&amp;gt;&lt;br /&gt;
2&amp;gt;&lt;br /&gt;
3&amp;gt; ALTER TABLE Employees ADD CONSTRAINT FK_Employees_Employees&lt;br /&gt;
4&amp;gt;   FOREIGN KEY(mgrid)&lt;br /&gt;
5&amp;gt;   REFERENCES Employees(empid)&lt;br /&gt;
6&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt;&lt;br /&gt;
3&amp;gt; ALTER TABLE Employees DROP CONSTRAINT FK_Employees_Employees&lt;br /&gt;
4&amp;gt; GO&lt;br /&gt;
1&amp;gt; drop table Employees;&lt;br /&gt;
2&amp;gt; GO&lt;br /&gt;
1&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Referential Constraints==&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;
4&amp;gt;&lt;br /&gt;
5&amp;gt; CREATE TABLE department(&lt;br /&gt;
6&amp;gt;    dept_no CHAR(4) NOT NULL,&lt;br /&gt;
7&amp;gt;    dept_name CHAR(25) NOT NULL,&lt;br /&gt;
8&amp;gt;    location CHAR(30) NULL,&lt;br /&gt;
9&amp;gt;    CONSTRAINT prim_dept PRIMARY KEY (dept_no))&lt;br /&gt;
10&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; CREATE TABLE employee (&lt;br /&gt;
3&amp;gt;            emp_no INTEGER NOT NULL,&lt;br /&gt;
4&amp;gt;            emp_fname CHAR(20) NOT NULL,&lt;br /&gt;
5&amp;gt;            emp_lname CHAR(20) NOT NULL,&lt;br /&gt;
6&amp;gt;            dept_no CHAR(4) NULL,&lt;br /&gt;
7&amp;gt;            CONSTRAINT prim_emp PRIMARY KEY (emp_no),&lt;br /&gt;
8&amp;gt;            CONSTRAINT foreign_emp FOREIGN KEY(dept_no) REFERENCES&lt;br /&gt;
9&amp;gt;       department(dept_no))&lt;br /&gt;
10&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; CREATE TABLE project (project_no CHAR(4) NOT NULL,&lt;br /&gt;
3&amp;gt;            project_name CHAR(15) NOT NULL,&lt;br /&gt;
4&amp;gt;            budget FLOAT NULL,&lt;br /&gt;
5&amp;gt;            CONSTRAINT prim_proj PRIMARY KEY (project_no))&lt;br /&gt;
6&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; CREATE TABLE myProject (emp_no INTEGER NOT NULL,&lt;br /&gt;
3&amp;gt;        project_no CHAR(4) NOT NULL,&lt;br /&gt;
4&amp;gt;        job CHAR (15) NULL,&lt;br /&gt;
5&amp;gt;        enter_date DATETIME NULL,&lt;br /&gt;
6&amp;gt;        CONSTRAINT prim_works PRIMARY KEY(emp_no, project_no),&lt;br /&gt;
7&amp;gt;        CONSTRAINT foreign1_works FOREIGN KEY(emp_no) REFERENCES&lt;br /&gt;
8&amp;gt;        employee(emp_no),&lt;br /&gt;
9&amp;gt;        CONSTRAINT foreign2_works FOREIGN KEY(project_no) REFERENCES&lt;br /&gt;
10&amp;gt;        project(project_no))&lt;br /&gt;
11&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop table myProject;&lt;br /&gt;
3&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop table project;&lt;br /&gt;
3&amp;gt; GO&lt;br /&gt;
1&amp;gt; drop table employee;&lt;br /&gt;
2&amp;gt; GO&lt;br /&gt;
1&amp;gt; drop table department;&lt;br /&gt;
2&amp;gt; GO&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Supporting Basic Referential Integrity with Foreign Keys==&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;
4&amp;gt;&lt;br /&gt;
5&amp;gt; CREATE TABLE Classes(&lt;br /&gt;
6&amp;gt;     ClassID int PRIMARY KEY,&lt;br /&gt;
7&amp;gt;     ClassTitle varchar(50)&lt;br /&gt;
8&amp;gt; )&lt;br /&gt;
9&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; CREATE TABLE ClassGrades(&lt;br /&gt;
3&amp;gt;     ClassID int REFERENCES Classes(ClassID)&lt;br /&gt;
4&amp;gt;         ON UPDATE CASCADE,&lt;br /&gt;
5&amp;gt;     StudentID int,&lt;br /&gt;
6&amp;gt;     GradeLetter varchar(2),&lt;br /&gt;
7&amp;gt;     Constraint PK_ClassGrades&lt;br /&gt;
8&amp;gt;         PRIMARY KEY(ClassID, StudentID)&lt;br /&gt;
9&amp;gt; )&lt;br /&gt;
10&amp;gt;&lt;br /&gt;
11&amp;gt; INSERT Classes VALUES(1,&amp;quot;SQL&amp;quot;)&lt;br /&gt;
12&amp;gt; INSERT Classes VALUES(999,&amp;quot;Java&amp;quot;)&lt;br /&gt;
13&amp;gt; GO&lt;br /&gt;
(1 rows affected)&lt;br /&gt;
(1 rows affected)&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; INSERT ClassGrades VALUES(1, 1, &amp;quot;C+&amp;quot;)&lt;br /&gt;
3&amp;gt;&lt;br /&gt;
4&amp;gt; INSERT ClassGrades VALUES(1, 2, &amp;quot;A+&amp;quot;)&lt;br /&gt;
5&amp;gt; INSERT ClassGrades VALUES(999, 2, &amp;quot;A&amp;quot;)&lt;br /&gt;
6&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&amp;gt;&lt;br /&gt;
2&amp;gt; INSERT ClassGrades VALUES(998, 1, &amp;quot;B&amp;quot;)&lt;br /&gt;
3&amp;gt; GO&lt;br /&gt;
Msg 547, Level 16, State 1, Server J\SQLEXPRESS, Line 2&lt;br /&gt;
The INSERT statement conflicted with the FOREIGN KEY constraint &amp;quot;FK__ClassGrad__Class__4F7D9B64&amp;quot;. The conflict occurred in database &amp;quot;master&amp;quot;, table &amp;quot;dbo.Classes&amp;quot;, column &amp;quot;ClassID&amp;quot;.&lt;br /&gt;
The statement has been terminated.&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop table ClassGrades;&lt;br /&gt;
3&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop table Classes;&lt;br /&gt;
3&amp;gt; GO&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== The FOREIGN KEY Clause==&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;
[CONSTRAINT c_name]&lt;br /&gt;
      [[FOREIGN KEY] (col_name1 [{, col_name2} ...]])&lt;br /&gt;
      REFERENCES table_name (col_name3 [{, col_name4} ...])&lt;br /&gt;
        [ON DELETE {NO ACTION|CASCADE|SET NULL|SET DEFAULT}]&lt;br /&gt;
         [ON UPDATE {NO ACTION|CASCADE|SET NULL|SET DEFAULT}]&lt;br /&gt;
14&amp;gt;&lt;br /&gt;
15&amp;gt; CREATE TABLE employee (emp_no INTEGER NOT NULL,&lt;br /&gt;
16&amp;gt;               emp_fname CHAR(20) NOT NULL,&lt;br /&gt;
17&amp;gt;               emp_lname CHAR(20) NOT NULL,&lt;br /&gt;
18&amp;gt;               dept_no CHAR(4) NULL,&lt;br /&gt;
19&amp;gt;       CONSTRAINT prim_empl PRIMARY KEY (emp_no))&lt;br /&gt;
20&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; CREATE TABLE myProject (&lt;br /&gt;
3&amp;gt;     emp_no INTEGER NOT NULL,&lt;br /&gt;
4&amp;gt;     project_no CHAR(4) NOT NULL,&lt;br /&gt;
5&amp;gt;     job CHAR (15) NULL,&lt;br /&gt;
6&amp;gt;     enter_date DATETIME NULL,&lt;br /&gt;
7&amp;gt;     CONSTRAINT prim_works PRIMARY KEY (emp_no, project_no),&lt;br /&gt;
8&amp;gt;     CONSTRAINT foreign_works FOREIGN KEY (emp_no) REFERENCES employee (emp_no))&lt;br /&gt;
9&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt;&lt;br /&gt;
3&amp;gt; drop table myProject;&lt;br /&gt;
4&amp;gt; GO&lt;br /&gt;
1&amp;gt;&lt;br /&gt;
2&amp;gt; drop table employee;&lt;br /&gt;
3&amp;gt; GO&lt;br /&gt;
1&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>