Create Table and Alter Table

2009-03-09 19:48

Create Table and Alter Table are the mainstays of building a database, but I can never quite remember the syntax.  Sql Server, Create Table [1][2], Alter Table [3].

CREATE TABLE Newspapers
(
    NewspaperID     INT NOT NULL,
    NewspaperName   VARCHAR(40) NOT NULL,
    Format          VARCHAR(10) NOT NULL
)

-- Adding a primary key adds a *clustered* index too.
ALTER TABLE Newspapers
ADD CONSTRAINT PK_Newspapers PRIMARY KEY (NewspaperID)

ALTER TABLE Newspapers
ADD CONSTRAINT CK_Newspapers_Format CHECK (Format IN ('Tabloid', 'Broadsheet'))

ALTER TABLE Newspapers
ADD CONSTRAINT DF_Newspapers_Format DEFAULT ('Tabloid') FOR Format

CREATE TABLE Articals
(
    ArticalID   INT CONSTRAINT PK_Articals PRIMARY KEY IDENTITY(1,1),
    NewspaperID INT NOT NULL,
    Title       VARCHAR(40) NOT NULL,
    WordCount   INT NOT NULL CONSTRAINT DF_Articals_WordCount DEFAULT (0),
    TS          ROWVERSION
)

ALTER TABLE Articals
ADD CONSTRAINT FK_Articals_Newspapers FOREIGN KEY (NewspaperID)
    REFERENCES Newspapers(NewspaperID)

-- Adding a foregin key does not automatically create an index
-- An index is nonclustered by default
CREATE INDEX IX_Articals_NewspaperID ON Articals(NewspaperID)

-- Adding a Unique constraint adds a unique non-clustered index automatically
ALTER TABLE Articals
ADD CONSTRAINT UC_Articles_Title UNIQUE (Title)

DROP TABLE Articals
DROP TABLE Newspapers

One Response to “Create Table and Alter Table”

  1. Thumper's Says:

    Thumper's Blog...

    Very nice post. I'd like to link back to it from my new blog. Thanks....

Leave a Reply

CAPTCHA Image Audio Version
Reload Image