-- 建立資料表
CREATE TABLE [TableName] (
[AutoID] INT IDENTITY(1,1) PRIMARY KEY,
[Col1] NVARCHAR(50) DEFAULT '預設值' NULL,
[Col2] NTEXT NULL,
[Col3] DATETIME,
[Col4] MONEY NULL,
[Col5] INT DEFAULT 0,
[Col6] DECIMAL(12,4) DEFAULT 0,
[Col7] IMAGE NULL
);
-- 刪除資料表
DROP TABLE [TableName];
-- 新增欄位
ALTER TABLE [TableName] ADD [NewCol] NVARCHAR(50) NULL;
-- 刪除欄位
ALTER TABLE [TableName] DROP COLUMN [ColName];
-- 修改欄位型別/長度/NULL性
ALTER TABLE [TableName] ALTER COLUMN [ColName] NVARCHAR(100) NOT NULL;
-- 重命名資料表
EXEC sp_rename 'OldTable', 'NewTable', 'OBJECT';
-- 重命名欄位
EXEC sp_rename 'TableName.OldCol', 'NewCol', 'COLUMN';
-- 新增 CHECK 約束
ALTER TABLE [TableName] ADD CONSTRAINT CK_Name CHECK ([DateCol] <= '2000-01-01');
-- 刪除約束
ALTER TABLE [TableName] DROP CONSTRAINT CK_Name;
-- 新增 DEFAULT 約束
ALTER TABLE [TableName] ADD CONSTRAINT DF_Name DEFAULT '預設值' FOR [ColName];
-- 刪除 DEFAULT 約束
ALTER TABLE [TableName] DROP CONSTRAINT DF_Name;
-- 插入
INSERT INTO [TableName] (Col1, Col2) VALUES (100, '51WINDOWS.NET');
-- 刪除
DELETE FROM [TableName] WHERE [ColName] > 100;
-- 更新
UPDATE [TableName] SET [Col1] = 200, [Col2] = 'New' WHERE [Col3] = 'HAIWA';
CREATE TABLE t (id COUNTER CONSTRAINT pk PRIMARY KEY) (注意 CONSTRAINT pk 中間有空格)。AUTOINCREMENT(種子,增量):CREATE TABLE t (id AUTOINCREMENT(25,1) PRIMARY KEY, age INT)。TEXT vs NVARCHAR)。-- SQL 2005+
SELECT
CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity')=1 THEN 1 ELSE 0 END AS IsIdentity,
a.name AS ColName, c.name AS TypeName, a.length, a.xscale, a.isnullable,
ISNULL(e.text, '') AS DefaultVal, ISNULL(p.value, '') AS Description
FROM sys.syscolumns a
JOIN sys.sysobjects b ON a.id = b.id
JOIN sys.systypes c ON a.xtype = c.xtype
LEFT JOIN sys.syscomments e ON a.cdefault = e.id
LEFT JOIN sys.extended_properties p ON a.id = p.major_id AND a.colid = p.minor_id
WHERE b.name = 'YourTable' AND c.status <> 1;
此文可作為 DDL 常用語法速查表,建議收藏備查。