SQL Server 的每个数据库最多可存储 20 亿个表，每个表可以有 1024 列。表的行数及总大小仅受可用存储空间的限制。每行最多可以存储 8,060 字节。如果创建具有 varchar、nvarchar 或 varbinary 列的表，并且列的字节总数超过 8,060 字节，虽然仍可以创建此表，但会出现警告信息。如果试图插入超过 8,060 字节的行或对行进行更新以至字节总数超过 8,060，将出现错误信息并且语句执行失败。

创建数据库 pubs：

USE [master]

CREATE DATABASE [pubs] ON PRIMARY

( NAME = N'pubs', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf' , SIZE = 2176KB , MAXSIZE = UNLIMITED, FILEGROWTH = 80KB )

LOG ON

( NAME = N'pubs_log', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf' , SIZE = 3840KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%)

GO

EXEC dbo.sp_dbcmptlevel @dbname=N'pubs', @new_cmptlevel=80

GO

下面的代码是 pubs 数据库中所创建的三个表（jobs、employee 和 publishers）的完整的命令。每个字段定义语句后面以“,”作为结束符。

/* *jobs 表 ************************** */

CREATE TABLE jobs

(

job_id smallint IDENTITY(1,1) NOT NULL,

job_desc varchar(50) NOT NULL DEFAULT '新职位',

min_lvl tinyint NOT NULL ,

max_lvl tinyint NOT NULL

)

/* ** employee 表 ************************* */

CREATE TABLE employee

(

emp_id varchar(50) NOT NULL,

fname varchar(20) NOT NULL,

minit char(1) NULL,

lname varchar(30) NOT NULL,

job_id smallint NOT NULL DEFAULT 1 ,

job_lvl tinyint DEFAULT 10,

pub_id char(4) NOT NULL DEFAULT ('9952'),

hire_date datetime NOT NULL DEFAULT (getdate())

)

/* ***************** publishers 表 ******************** */

CREATE TABLE publishers

(

pub_id char(4) NOT NULL,

pub_name varchar(40) NULL,

city varchar(20) NULL,

state char(2) NULL,

country varchar(30) NULL DEFAULT('USA')

)