1. 程式人生 > >SQL合集

SQL合集

二、欄位操作

前言:有些語句經常忘,此片純記錄

1、增刪欄位

--刪除欄位
ALTER TABLE Prod_point_class DROP column RecommendType

--新增主鍵
ALTER table Province add constraint id primary key(id);

--新增欄位
USE 資料庫名
GO 
--若該表不存在該欄位,則新增
IF NOT EXISTS(SELECT * FROM SYSCOLUMNS WHERE ID=OBJECT_ID('[Order_List]') AND NAME='PurchaseTime') 
BEGIN
ALTER TABLE Table1  ADD  欄位名 DATETIME DEFAULT('1900-01-01 00:00:00.000') NOT NULL
--下面這段可以不用寫  
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'欄位描述' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Table1', @level2type=N'COLUMN',@level2name=N'欄位名'
END

2、索引

新增索引:CREATE INDEX 索引名稱 ON 表名(列) WITH(ONLINE=ON)

刪除索引:drop index 索引名稱 on 表名
查尋索引: select * from sys.indexes where name='索引名稱';

 

3、SQLSERVER 把兩個不相關的表資料縱向排列到一起(union All 比union 效率高)
例如: select t2.ImgUrl,t2.ID,t2.Title from Prod_Point_List

union All

select t2.ImgUrl,t2.ID,t2.Title from Prod_Point_Item

 

 4、sql查詢資料庫表名、欄位名、型別、說明

SELECT
A.name AS table_name,
'表說明',
B.name AS column_name,
TYPE_NAME(system_type_id) AS column_type ,
max_length ,
C.value AS column_description
FROM sys.tables A
INNER JOIN sys.columns B ON B.object_id = A.object_id
LEFT JOIN sys.extended_properties C ON C.major_id = B.object_id AND C.minor_id = B.column_id
WHERE A.name = 'Lottery_Type'

 

5、sqlserver 開發工具自帶的sqlserver profile跟蹤工具,位置:工具-第一個選單

有時頁面展示資料不對,需要檢視儲存過程問題,條件比較多需要除錯一個個補到Exec執行,效率很低。
在頁面點選不知道儲存過程引數值,可以用這個直接獲取到完整的Exec語句,很方便
跟蹤記錄太多可搜尋