当前位置:  数据库>sqlserver
本页文章导读:
    ▪一步步学习Analysis Services 创建主子关系维度与SSRS展示主子关系维度图表的下钻      SSAS视图中构建该表的关系设置维度,父ID设置维度用法为父级,然后重新拖拽个父ID。在SSRS中构建计算项将计算项拖拽到数据区域,我们可以看到父ID=0的就是根在SSRS中设置报表参数用来展示.........
    ▪MSSQL2005发送邮件配置图解      在网上找了好长时间利用SQL Server发送邮件,都一直没有成功,最后还是自己摸索的,拿出来给大家分享一下。1、  2、 3、 4、 5、  6、  7、  8、 &nb.........
    ▪SQL Server系列之 删除大量数据      一、写在前面 - 想说爱你不容易  为了升级数据库至SQL Server 2008 R2,拿了一台现有的PC做测试,数据库从正式库Restore(3个数据库大小夸张地达到100G+),而机器内存只有可怜的4G,不仅要承担DB.........

[1]一步步学习Analysis Services 创建主子关系维度与SSRS展示主子关系维度图表的下钻
    来源:    发布时间: 2013-11-15

SSAS视图中构建该表的关系

设置维度,父ID设置维度用法为父级,然后重新拖拽个父ID。

在SSRS中构建计算项

将计算项拖拽到数据区域,我们可以看到父ID=0的就是根

在SSRS中设置报表参数用来展示下钻图标

在记录集中通过参数进行筛选

设置图表属性,设置操作传递参数进行下钻

效果如下

本文链接


    
[2]MSSQL2005发送邮件配置图解
    来源:    发布时间: 2013-11-15

在网上找了好长时间利用SQL Server发送邮件,都一直没有成功,最后还是自己摸索的,拿出来给大家分享一下。


1、


 


 2、



 


3、



 


4、



 


5、



 


 6、



 


 7、



 


 8、



 


 9、



 


 10、



 


 11、



 


 12、



 


 到这里,邮件应该是已经能发送成功了。大家可以试一下。。


 


 下面介绍2个语句,是用来查询发送邮件状态的



select * from msdb.dbo.sysmail_allitems
select * from msdb.dbo.sysmail_event_log


第一条语句里有一个sent_status字段,就可以清楚的看到发送邮件是否功能,第二条语句可以查看邮件发送的日志 


最后再说一下如何用sql语句来发送邮件



EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'TestProfile',--图3里的“配置文件名”
@recipients = '123@qq.com;456@qq.com',--收件人的邮箱,多个邮箱用分号“;”分开
@subject = '查询结果',--邮件主题
@body='查询结果在附件中',--邮件内容
@query = 'select * from China.dbo.s_province',--查询语句
@attach_query_result_as_file = 1,--查询在邮件中体现形式,0为邮件内容,1为邮件附件,默认0
@query_attachment_filename='aaa.txt'--邮件附件文件名


 MSSQL 2008也是可以的哦。。


 用sp_send_dbmail来发送邮件还可以有很多参数,比如说邮件格式可以是text或html等等,具体参数可以参考MSDN对对sp_send_dbmail的详细解释


 http://msdn.microsoft.com/zh-cn/library/ms190307(v=sql.90).aspx


 


 

本文链接


    
[3]SQL Server系列之 删除大量数据
    来源:    发布时间: 2013-11-15

一、写在前面 - 想说爱你不容易


  为了升级数据库至SQL Server 2008 R2,拿了一台现有的PC做测试,数据库从正式库Restore(3个数据库大小夸张地达到100G+),而机器内存只有可怜的4G,不仅要承担DB Server角色,同时也要作为Web Server,可想而知这台机器的命运是及其惨烈的,只要MS SQL Server一启动,内存使用率立马飙升至99%。没办法,只能升内存,两根8G共16G的内存换上,结果还是一样,内存瞬间被秒杀(CPU利用率在0%徘徊)。由于是PC机,内存插槽共俩,目前市面上最大的单根内存为16G(价格1K+),就算买回来估计内存还是不够(卧槽,PC机伤不起啊),看样子别无它法 -- 删数据!!!


二、删除数据 - 众里寻他千百度


  删除数据 -- 说的容易, 不就是DELETE吗?靠,如果真这么干,我XXX估计能“知道上海凌晨4点的样子”(KB,Sorry,谁让我是XXX的Programmer,哥在这方面绝对比你牛X),说了这么多,你明白为什么不能用DELETE了吗?如果还不明白,请自行Google(谁在说度娘?直接拉出去喀嚓)。既然不能直接DELETE,那还有什么好办法呢?继续Google,终于发现了一些可行的办法,但也是众说纷纭:


1. 批量删除

  脚本类似如下,中心思想就是一次删除给定的记录条数,但只commit一次,貌似效率应该会好点,但是如果要删除的表比较多,数据量也比较大的话,还是会担心日志会比较多,而且写起来也不是特别方便。



set rowcount 5000

while 1=1
begin
begin tran
delete from X
commit
if @@rowcount = 0
break
end

set rowcount 0


2. 强悍的TRUNCATE出场吧

  我之前也一直想用TRUNCATE来着,但是我的要求是并不是把数据库中的表全部干掉,即是有条件的保留和删除(例如删除2012年之前的数据),为了使用TRUNCATE,那只能先把要保留的数据先存起来,而关于如何保留这些数据也有几种方法


2.1 保留->TRUNCATE->还原

  脚本类似如下



SELECT * INTO #keep FROM Original WHERE CreateDate > '2011-12-31'
TRUNCATE TABLE Original
INSERT Original SELECT * FROM #keep


  第一条语句会把所有要保留的数据先存放至表#keep中(表#keep无需手工创建,由SELECT INTO生效),#keep会Copy原始表Original的表结构。PS:如果你只想创建表结构,但不拷贝数据,则对应的脚本如下



SELECT * INTO #keep FROM Original WHERE 1 = 2


  第二条语句用于清除整个表中数据,产生的日志文件可以忽略;第三条语句用于还原保留数据。


几点说明:



  • 你可以不用SELECT INTO,自己通过写脚本(或拷贝现有表)来创建#keep,但是后者有一个弊端,即无法通过SQL脚本来获得对应的表生成Script(我的意思是和原有表完全一致的脚本,即基本列,属性,索引,约束等),而且当要操作的表比较多时,估计你肯定会抓狂;

  • 既然第一点欠妥,那考虑新建一个同样的数据库怎么样?既可以使用现有脚本,而且生成的数据库基本一致,但是我告诉你最好别这么做,因为第一要跨库,第二,你得准备足够的磁盘空间


2.2 新建->拷贝->DROP->重命名

  CREATE TABLE #keep AS (xxx) xxx -- 使用上面提到的方法(使用既有表的创建脚本),但是不能够保证完全一致;


  INSERT #keep SELECT * FROM Original where clause


  DROP TBALE Original


  EXEC SP_RENAME '#keep','Original'


三、数据收缩 - 犹抱琵琶半遮面


   数据删除后,发现数据库占用空间大小并没有发生变化,此时我们就用借助强悍的数据收缩功能了,脚本如下,运行时间不定,取决于你的数据库大小,多则几十分钟,少则瞬间秒杀



DBCC SHRINKDATABASE(DB_NAME)


 (未完待补充完整)

本文链接


    
最新技术文章:
▪Sql Server里删除数据表中重复记录的例子
▪如何查看SQLSERVER中某个查询用了多少TempDB空间...
▪在SQL Server中使用ISNULL执行空值判断查询
▪揭秘SQL Server 2014有哪些新特性(1)-内存数据库
▪揭秘SQL Server 2014有哪些新特性(2)-固态硬盘 Buff...
▪揭秘SQL Server 2014有哪些新特性(3)-可更新列存...
▪揭秘SQL Server 2014有哪些新特性(4)-原生备份加...
▪解决SqlServer 各版本 sa帐户不能登录问题
▪浅析SQL Server中包含事务的存储过程
▪深入分析MSSQL数据库中事务隔离级别和锁机制
▪SQL优化技巧指南
▪人工智能自动sql优化工具--SQLTuning for SQL Server
▪使用 TOP 子句限制UPDATE 语句更新的数据
▪sql server动态存储过程按日期保存数据示例
▪SQLServer用存储过程实现插入更新数据示例
▪SqlServer中tempdb的日志机制原理解析及示例分享...
▪SqlServer数据库提示 “tempdb” 的日志已满 问题...
▪浅谈tempdb在SqlServer系统中的重要作用
▪SqlServer提示“列前缀tempdb.无效: 未指定表名”...
▪SQL命令优化需要记住的9点事项
▪教你如何看懂SQL Server查询计划
▪sql server 2000数据库备份还原的图文教程
▪SqlServer2012中First_Value函数简单分析
▪sql语句中单引号嵌套问题(一定要避免直接嵌...
▪谈谈sqlserver自定义函数与存储过程的区别
▪SQL SERVER使用REPLACE将某一列字段中的某个值替...
▪总结一周内学习的Sql经验(一)
▪sql存储过程详解
▪SQL Server UPDATE语句的用法详解
▪MSSQL事务的存储过程
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3