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语句,很方便
跟踪记录太多可搜索

原文地址:https://www.cnblogs.com/xiaoxiaoqiao/p/9283812.html