数据库对象的操作
管理维护数据库
1、创建数据库 CREATE DATABASE database-name
2、删除数据库 drop database dbname
3、创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
4、删除新表 drop table tabname
5、增加一个列 Alter table tabname add column col type
6、添加主键 Alter table tabname add primary key(col)
删除主键: Alter table tabname drop primary key(col)
7、创建索引:create [unique] index idxname on tabname(col….)
8、创建视图:create view viewname as select statement
9、初始化表table1 TRUNCATE TABLE table1
10、删除视图:drop view viewname
其他参考:
Insert into select语句与select into from 语句
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。
创建索引语句:
IF EXISTS (SELECT 1
FROM dbo.sysindexes
WHERE name = N'INDEX_CO_text'
AND id = Object_id(N'text'))
BEGIN
DROP INDEX text.[INDEX_CO_text]
END
CREATE NONCLUSTERED INDEX [INDEX_CO_text]
ON text(campaignid, ownerid)
ON [PRIMARY]
管理维护数据库
/*
功能说明:清空缓存
*/
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
/*
功能说明:重建索引,整理索引碎片
*/
DBCC SHOWCONTIG(XTRZB) WITH tableresults
DBCC DBREINDEX(GYPLDFL1)
/*
功能说明:更新统计信息
*/
update statistics GYPLDFL1
/*
功能说明: 重建整个库的索引碎片
修改说明: Created BY LY 2012-6-14
*/
DECLARE @SQL VARCHAR(MAX)
SET @SQL = ''
SELECT @SQL = @SQL + 'DBCC DBREINDEX(' + name + ');'
FROM sysobjects
WHERE xtype = 'u'
EXEC(@SQL)
/*
功能说明: 重建整个库的统计信息
修改说明: Created BY LY 2012-6-14
*/
Exec sp_updatestats;
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。
1 个评论
梁勇 天道酬勤、上善若水。爱好商业智能
SQL脚本查询本月的第一个星期二至下月的第一个星期二的时间段 :
DECLARE @BEGINDate DATETIME,
@EndDate DATETIME;
SELECT @BEGINDate = getdate() ;
SET @EndDate = Dateadd(M, 1, @BEGINDate);
SELECT Dateadd(wk, Datediff(wk, 0, Dateadd(dd, 6 - Datepart(day, @BEGINDate), @BEGINDate)), 0) + 1,----本月第一个星期二
Dateadd(wk, Datediff(wk, 0, Dateadd(dd, 6 - Datepart(day, @EndDate), @EndDate)), 0) + 1 ----下月的第一个星期二
DECLARE @BEGINDate DATETIME,
@EndDate DATETIME;
SELECT @BEGINDate = getdate() ;
SET @EndDate = Dateadd(M, 1, @BEGINDate);
SELECT Dateadd(wk, Datediff(wk, 0, Dateadd(dd, 6 - Datepart(day, @BEGINDate), @BEGINDate)), 0) + 1,----本月第一个星期二
Dateadd(wk, Datediff(wk, 0, Dateadd(dd, 6 - Datepart(day, @EndDate), @EndDate)), 0) + 1 ----下月的第一个星期二