I don't particularly like creating new tables in SQL Server Management Studio and then using the script generator to create a create table script as I find the resulting scripts are always pretty verbose.
Writing a create table script is pretty straight forward. Here is an example:
CREATE TABLE [dbo].[Employee] ( EmployeeID int not null PRIMARY KEY, FirstName varchar(100) not null, LastName varchar(100) not null )
The problem with this script is that the primary key is not explicitly named. So how do we go about explicitly naming the primary key constraint and for that matter any other constraint. Here is an example that demonstrates how to do this for primary keys, foreign keys and unique constrains:
CREATE TABLE [dbo].[JobTitle] ( JobTitleID int not null CONSTRAINT [PK_JobTitle] PRIMARY KEY (JobTitleID), Name varchar(100) not null, [Description] varchar(2000) null ) CREATE TABLE [dbo].[Employee] ( EmployeeID int not null CONSTRAINT [PK_Employee] PRIMARY KEY (EmployeeID), FirstName varchar(100) not null, LastName varchar(100) not null, IDNumber varchar(30) not null CONSTRAINT [UC_IDNumber] UNIQUE (IDNumber), JobTitleID int null CONSTRAINT [FK_Employee_JobTitle] REFERENCES [dbo].[JobTitle] )
One thing that is not demonstrated in this code snippet is how to add a second named constraint onto a field. It is pretty straight forward. I have specifically layed out the example with the constraints indented on the line below the field they relate to. Notice that there is no comma before the CONSTRAINT keyword. To add another constraint that applies to the same field, you just add another constraint keyword and continue. I have indented the constraints and put them on their own line so that the code is more readable in the case where there are multiple constraints on any one field.
No comments:
Post a Comment