将.bak备份文件恢复:
- 新建数据库-【完成】
- 点击新建的数据库名-右键-【任务】-【还原】-【数据库】
- 选择【源设备】
- 【备份媒体】选择【文件】。点击【备份位置】的【添加】
- 选择一个.bak文件,点击【确定】
- 【还原选项】选择【覆盖现有数据库】
为表新增备注:
if exists(select 1from sys.tables where object_id=object_id('test'))
begin
drop table test
end
create table test
(
col1 varchar(50),
col2 varchar(50)
)
executesp_addextendedpropertyN'MS_Description',N'这是测试列1',N'SCHEMA',N'dbo',N'table',N'test',N'column',N'col1'
executesp_addextendedpropertyN'MS_Description',N'这是测试列2',N'SCHEMA',N'dbo',N'table',N'test',N'column',N'col2'
查询备注信息:
selectB.Name,A.value from sys.extended_properties A
inner joinsys.columns B on A.major_id=B.object_id
andA.minor_id=B.column_id
whereA.major_id=object_id('Biz_MedCardFrozenHis')
更新备注信息:
executesp_updateextendedpropertyN'MS_Description',N'这是修改后的测试列1',N'SCHEMA',N'dbo',N'table',N'test',N'column',N'col1'
executesp_updateextendedpropertyN'MS_Description',N'这是修改后的测试列2',N'SCHEMA',N'dbo',N'table',N'test',N'column',N'col2'
为数据表添加新列:
Alter table 表名 add 新列名 nvarchar(30);
SQL优化:
聚集索引查找,开销过高:正常?
少地使用:in,not in,like,or 或者having,尽量使用表链接代替 exist。Having可以用where代替。
索引字段上少用:not,<>,!=,IS NULL和IS NOT NULL
能使用ID排序,就用ID排序(比如按时间查询的话,就可以考虑使用ID)
根据时间获取数据:
select * fromBiz_ImportRechargeHis a,Sys_File b where a.FileID=b.FileID
anda.InsCompanyID='1875' and a.Status=1
andSUBSTRING(CONVERT(CHAR(19), b.UploadTime, 120),1,11)='2014-09-28'
andSUBSTRING(CONVERT(CHAR(19), b.UploadTime, 120),1,11)!='2014-09-29'
and a.FileID='284'
修改SQL数据的系统时间获取位置:
SQL数据库文件所在系统的时间
查看SQL语句对CPU占用率:
【SQL ServerProfiler】-
【登录】-【事件选择】-【列筛选器】-【CPU】
刷新本地缓存:
【编辑】-【IntelliSense】-【刷新本地缓存】
Sql的‘天’转换:
select casewhen Datename(dd,GETDATE()) <= 9 then'0' + Datename(dd,GETDATE())
elseDatename(dd,GETDATE()) end; //SqlServer方法
SQL模糊查询:
Name like '%查询字符%'
Name =SUBSTR('查询字符',0,4)
SUBSTR(Name,0,4) ='查询字符'
将一个表的数据修改到另外一个表:
Update A set A.a=B.c
from db.Aas A. db.B as B
WheeA.b=B.b //将B表的c列数据更新到A表的a列