首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server DDL 快速參考:建表、改欄位、重命名、約束、預設值完整語法

     編輯:關於SqlServer

資料表與欄位操作

-- 建立資料表
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;

資料操作 (DML)

-- 插入
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';

Access 相容性備註

  • Access 自動編號:CREATE TABLE t (id COUNTER CONSTRAINT pk PRIMARY KEY) (注意 CONSTRAINT pk 中間有空格)。
  • 或 AUTOINCREMENT(種子,增量):CREATE TABLE t (id AUTOINCREMENT(25,1) PRIMARY KEY, age INT)。
  • 大部分 DDL 語法在 Access (ACE/Jet) 亦可執行,但資料型別名稱不同 (如 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 常用語法速查表,建議收藏備查。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved