Để tạo bảng trong SQL Server bằng truy vấn:
- Trong SQL Server Management Studio, nhấp vào Truy vấn mới trên thanh công cụ
- Nhập hoặc dán
CREATE TABLE
script (ví dụ bên dưới) - Nhấp vào ! Thực thi trên thanh công cụ
Đây là một ví dụ:
Tập lệnh TẠO BẢNG
Đây là tập lệnh SQL trong ví dụ trên:
TẠO BẢNG Trạng thái (StatusId int IDENTITY (1,1) NOT NULL, StatusName varchar (50) NOT NULL, DateCreate datetime NOT NULL CONSTRAINT DF_Status_DateCreate DEFAULT (getdate ()), CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId))Tập lệnh thực hiện những việc sau:
- tạo một bảng
- thêm 3 cột
- đặt kiểu dữ liệu của họ
- chỉ định rằng StatusId là một cột nhận dạng và giá trị của bản ghi đầu tiên sẽ là 1 và giá trị cho mỗi bản ghi tiếp theo sẽ tăng lên 1
- chỉ định rằng bất kỳ giá trị nào trong cột StatusName có thể có độ dài tối đa là 50
- chỉ định rằng các giá trị NULL không được phép
- đặt giá trị mặc định của ngày hiện tại cho cột Ngày được tạo
- đặt trường StatusId làm khóa chính
Đây là một script cơ bản chỉ tạo một bảng nhỏ. Bạn có thể dễ dàng chạy một tập lệnh tạo toàn bộ cơ sở dữ liệu, với tất cả các đối tượng, dữ liệu và quyền của nó chỉ trong một lần.
Cải thiện tập lệnh
Khi tạo các đối tượng cơ sở dữ liệu, bạn nên kiểm tra xem đối tượng đã tồn tại hay chưa. Điều này ngăn lỗi xảy ra khi tập lệnh cố gắng tạo một bảng đã có trong cơ sở dữ liệu.
Chỉ chạy nếu Bảng chưa tồn tại
Dòng sau có thể được thêm vào tập lệnh trên, do đó, tập lệnh TẠO BẢNG sẽ chỉ chạy nếu bảng chưa tồn tại trong cơ sở dữ liệu (hoặc bảng có cùng tên):
NẾU KHÔNG TỒN TẠI (CHỌN * TỪ sysobjects WHERE name ='Trạng thái' VÀ xtype ='U')
Vì vậy, toàn bộ tập lệnh sẽ trở thành:
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name ='Status' AND xtype ='U') TẠO Trạng thái BẢNG (StatusId int IDENTITY (1,1) NOT NULL, StatusName varchar (50) NOT NULL, DateCreate datetime NOT NULL CONSTRAINT DF_Status_Date được tạo DEFAULT (getdate ()), CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId))
Thay thế bảng nếu nó đã tồn tại
Tập lệnh cũng có thể được viết lại để thay thế bảng nếu nó đã tồn tại. Điều này có thể được thực hiện trước tiên, bỏ bảng hiện có, sau đó tạo bảng mới.
SQL Server 2016
SQL Server 2016 đã giới thiệu mệnh đề DROP IF EXISTS. Vì vậy, trong SQL Server 2016, chúng ta có thể thêm phần sau vào đầu tập lệnh:
DROP TABLE NẾU TỒN TẠI [TaskTracker]. [Status]
(TaskTracker là tên của cơ sở dữ liệu. Trạng thái là tên của bảng).
DROP TABLE NẾU TỒN TẠI [TaskTracker]. [Status] TẠO BẢNG Trạng thái (StatusId int IDENTITY (1,1) NOT NULL, StatusName varchar (50) NOT NULL, DateCreate datetime NOT NULL CONSTRAINT DF_Status_DateCreate DEFAULT (getdate ()), CONSTRAINT PK_Status KHÓA CHÍNH ĐƯỢC ĐIỀU CHỈNH (StatusId))
SQL Server 2014 trở về trước
Nếu sử dụng phiên bản SQL Server cũ hơn, bạn có thể sử dụng cách sau để loại bỏ bảng hiện có:
NẾU TỒN TẠI (CHỌN * TỪ sysobjects WHERE name ='Trạng thái' VÀ xtype ='U') Trạng thái BẢNG DROP
Vì vậy, toàn bộ tập lệnh sẽ trở thành:
IF EXISTS (SELECT * FROM sysobjects WHERE name ='Status' AND xtype ='U') DROP TABLE StatusCREATE TABLE Status (StatusId int IDENTITY (1,1) NOT NULL, StatusName varchar (50) NOT NULL, Datetime datetime NOT NULL CONSTRAINT DF_Status_Date đã tạo DEFAULT (getdate ()), CONSTRAINT PK_Status PRIMARY KEY CLUSTERED (StatusId))
Tạo tập lệnh từ một bảng hiện có
Bạn có thể tạo tập lệnh SQL từ một bảng hiện có thông qua Trình khám phá đối tượng trong GUI SSMS. Khi bạn thực hiện việc này, SQL Server sẽ tạo tất cả mã SQL từ bảng và tạo tập lệnh.
Để thực hiện việc này, chỉ cần nhấp chuột phải vào bảng và chọn Bảng tập lệnh dưới dạng ... sau đó làm theo lời nhắc.
Điều này không chỉ giới hạn ở các bảng - bạn có thể tập lệnh cho bất kỳ đối tượng cơ sở dữ liệu nào bằng cùng một phương pháp.
Nếu chưa quen với việc tạo tập lệnh SQL, bạn có thể thử tạo bảng bằng GUI, sau đó tạo tập lệnh SQL từ bảng.