MSSql2005及新版本
dz45693
我是一个软件开发人员,有较强的责任心,是一个典型的技术爱好者。在此希望能认识更多好朋友。
展开
-
sql存储过程加密和解密(MSSQL)
在网络上,看到有SQL Server 2000和SQL Server 2005 的存储过程加密和解密的方法,后来分析了其中的代码,发现它们的原理都是一样的。后来自己根据实际的应用环境,编写了两个存储过程,一个加密存储过程(sp_EncryptObject),和一个解密存储过程(sp_EncryptObject),它们可以应用于SQL Server中的储过程,函数,视图,以及触发器。感觉这两个存...转载 2019-10-24 10:28:19 · 2757 阅读 · 0 评论 -
关于SQLServer2005的学习笔记——自定义分组的实现
对于自定义分组,一向是比较烦琐的,幸好SQLServer2005提供了FOR XML PATH的语法能够很方便的解决该问题,同时采用自定义函数的方式还能够更方便的进行扩展;Oracle10g以后提供了一个wmsys.wm_concat函数,也可以起到类似的作用。 下面以SQLServer2005自带的Advent转载 2010-03-15 08:39:00 · 2907 阅读 · 0 评论 -
关于SQLServer2005 的学习笔记(一)——前言
关于SQL Server,个人一直认为它是比较简单却又很神秘的数据库;简单之处在于他完全通过图形化界面便可实现所有大型数据库的安装、维护、备份、优化等等;神秘呢在于它所有的一切都隐藏在了图形化界面之下,让人琢磨不透,当需要更深层次的去了解他的时候,却无能为力。我开始使用SQL Server自2002年起,做了一年多基于SQL Server数据库的程序开发转载 2010-01-04 21:14:00 · 2706 阅读 · 0 评论 -
远程备份SQL Server 2005数据库
今天终于把这个问题给解决了:参考文章:http://blog.csdn.net/long2006sky/archive/2007/04/23/1576583.aspx实例说明: 环境:win2k+sqlserver 2K+查询分析器 SQLSERVER服务实例名称:mainserver 需要备份的数据库名称: msd原创 2009-11-13 08:56:00 · 2650 阅读 · 0 评论 -
关于SQLServer2005 的学习笔记(二)——体系结构一
SQLServer2005引擎组件首先让我们先来看看SQL Server2005的引擎组件,SQLServer2005有四大组件:协议、关系引擎、存储引擎和SQLOS。协议层接收来自于用户的请求(查询、更改、删除、创建表等等操作)并把它们转换成关系引擎能够识别的形式。它还转载 2010-01-04 21:31:00 · 2922 阅读 · 0 评论 -
Sql Server2005实现远程备份数据库
相信大家都在当心数据库的丢失,这也是每个开发者头痛的一件事件,因为正在运行的服务器及数据库也在这台服务器上。如果服务器崩溃,那么所有的数据都不存在了,就算是你在你的机子上做了备份,那也是没有用的,为什么会这样说主要是因为本机是向互联网公开的,所以出事故的概率就比较高。最终我们可以利用局域网解决这样的问题。就拿两台机子做例子,A机是服务器,B机是要把A服务器上的数据库备份到B机上,前提原创 2009-11-13 08:57:00 · 2605 阅读 · 0 评论 -
SQL Server 大数据搬迁之文件组备份还原实战
.本文所涉及的内容(Contents)本文所涉及的内容(Contents)背景(Contexts)解决方案(Solution)搬迁步骤(Procedure)搬迁脚本(SQL Codes)注意事项(Attention)疑问(Questions)参考文献(References)二.背景(Contexts) 有一个数据库大概在700G左右,需要从服务器A搬迁到服务器B,两台服务器网络传转载 2014-04-04 17:16:21 · 2736 阅读 · 0 评论 -
关于SQLServer2005的学习笔记——生日问题
生日问题是个看似简单逻辑上却又比较复杂的小问题主要的逻辑难点第一个是关于闰月尾天的计算,第二个是判断本年度生日是否已过本文给出了三种解决办法,第一种是最常用的解决办法,即常用的SQL语法,不过看起来比较复杂,适合环境为SQLServer2000以上第二种是采用函数的方法,把对日期的逻辑处理放到函数中,调用起来会简约一下,适合环转载 2010-03-15 08:48:00 · 2835 阅读 · 0 评论 -
MSSQL 数据库语句原来是区分大小写的啊
一直以来我们都认为数据库语句是不区分大小写,其实这是错误的认识,之所以不区分是因为数据库语言不区分大小写。这里我们以mssql2005中自带的AdventureWorksDW数据库为例。执行以下语句SELECT databasepropertyex('AdventureWorksDW','collation')goselect top 1 * from Dimaccount原创 2013-07-04 09:50:45 · 2860 阅读 · 0 评论 -
MSSQL Rebuild(重建)索引
目前的项目是做数据库的归档,在每次archive后都需要对原数据库的索引进行rebuild,以减少索引碎片,于是乎就自己写了一段sql:DECLARE @tablename VARCHAR(50)DECLARE @indexname VARCHAR(50)DECLARE @cmdsql NVARCHAR(MAX)DECLARE index_cursor CURSORFOR原创 2013-07-25 13:45:27 · 3401 阅读 · 0 评论 -
查看MSSQL 数据库 用户每个表 占用的空间大小
最近做项目需要查看数据用户表的大小,包括记录条数和占用的磁盘空间数目。在网上找了很久其中查看MSSQL数据库每个表占用的空间大小 相对还可以。不过它的2、3中方法返回的数据比较多,有些是我们不关心的数据,我在AdventureWorks2012数据上做的测试。其中第二种方法代码如下: View Code if not exists (select * from dbo.sysobjec原创 2013-04-17 17:44:09 · 3137 阅读 · 0 评论 -
修改SQL Server 2008数据库服务器名称方法
修改SQL Server 2008数据库服务器名称方法原创 2010-06-17 14:17:00 · 3596 阅读 · 0 评论 -
关于SQLServer2005的学习笔记——统计学自动分组问题
关于SQLServer2005的学习笔记——统计学自动分组问题 学过统计学或者做过BI的应该知道,很多报表需要以区间统计的方式来实现,怎么分组比较合理,什么的组距比较合适,会困扰很多人;本文给出一个自动分组的方法,稍微修改一下,便可以做成通用区间分组程序。关于统计学组距分组参考以下链接:http://wiki.mbalib.com/w转载 2010-03-15 08:45:00 · 2862 阅读 · 0 评论 -
关于SQLServer2005的学习笔记——XML的处理
在SQLServer2005中对XML的处理功能显然增强了很多,提供了query(),value(),exist(),modify(),nodes()等函数。关于xml,难以理解的不是SQLServer提供的函数,而是对xml本身的理解,看似很简单的文件格式,处理起来却是非常困难的。本文只是初探一下而已。详见SQLSe转载 2010-03-15 08:44:00 · 2738 阅读 · 0 评论 -
关于SQLServer2005的学习笔记——SQL查询解析步骤
最近一来因工作上的事情比较闹心,没心事再研究 SQLServer2005 的体系结构;一来关于体系结构确实过于复杂,远远不如应用来的直接明了,所以暂时搁笔。 出于工作上的需要,对应用开发需要更多的了解,所以把心事暂时放到这方面。 先从最简单的 SQL 入手来分析一下 SQL 的执行步骤,为什么了解执行步骤,其实与 JOIN 后的 ON 条件和 WHERE 条件容易混淆有关系。 是转载 2010-01-08 14:54:00 · 2648 阅读 · 0 评论 -
Sql Server 2012新特性 Online添加非空栏位
我们都知道,Sql Server在一个数据量巨大的表中添加一个非空栏位是比较费心的,缺乏经验的DBA或是开发人员甚至可能鲁莽地直接添加导致阻塞相应业务,甚至可能因为资源欠缺造成实例的全局问题.当然这都是Sql 2008R2及以前版本的情况.在SQL2012中采用了新的实现方式.这里我将对比相应的实现方式给大家做个介绍.并简单说明Sql Server早期版本添加非空列的方法.添加非空栏位的实现方转载 2014-07-31 22:19:35 · 2342 阅读 · 0 评论 -
SQL Server 2012 自动增长列,值跳跃问题
介绍从 SQL Server 2012 版本开始, 当SQL Server 实例重启之后,表格的自动增长列的值会发生跳跃,而具体的跳跃值的大小是根据增长列的数据类型而定的。如果数据类型是 整型(int),那么跳跃值为 1000;如果数据类型为 长整型(bigint),那么跳跃值为 10000。从我们的项目来看,这种跳跃问题是不能被接受的,尤其是展示在客户端的时候。这个奇怪的问题只在 SQL转载 2016-03-15 13:11:02 · 3632 阅读 · 1 评论 -
你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)
前言本篇主要是上一篇文章的补充篇,上一篇我们介绍了SQL Server服务启动过程所遇到的一些问题和解决方法,可点击查看,我们此篇主要介绍的是SQL Server启动过程中关于用户数据库加载的流程,并且根据加载过程中所遇到的一系列问题提供解决方案。其实SQL Server作为微软的一款优秀RDBMS,它启动的过程中,本身所带的那些系统库发生问题的情况相对还是很少的,我们在平常使用中转载 2014-11-18 14:32:00 · 2558 阅读 · 0 评论 -
如何检查SQL Server阻塞
--查询应用程序的等待SELECT TOP 10 wait_type,waiting_tasks_count AS tasks,wait_time_ms,max_wait_time_ms AS max_wait,signal_wait_time_ms AS signalFROM sys.dm_os_wait_statsORDER BY wait_time_ms DESC原创 2010-01-28 10:49:00 · 3003 阅读 · 0 评论 -
SSRS报表连接超时的问题
这段时间遇到一个问题就是ReportService 中采用了远程连接的报表偶尔会断开连接,导致报表导出异常,查阅了很多资料,几天来就是断断续续的终于解决了这个问题,下面把一些解决的点一一展示出来,便于大家将来遇到同样问题无从下手。首先是报错,接下来我马上去看日志,很多人不知道文件的位置,一般默认就是这个路径(Program Files\Microsoft SQL Server\MSRS11转载 2016-08-04 11:34:32 · 2652 阅读 · 0 评论 -
SQL Server执行部分语句的内存代价
众所周知,SQL Server执行SQL语句的性能判定标准主要是IO读取数大小。本文在不违反这一原则情况下,同时来分析一下部分SQL语句执行时,SQL Server内存的变化情况。 首先简述一下SQL Server内存占用的特点。SQL Server所占用的内存除程序(即SQLServer引擎)外,主要包括缓存的数据(Buffer)和执行计划(Cache)。SQLServe原创 2010-01-27 13:35:00 · 3225 阅读 · 0 评论 -
如何检查SQL Server I/O瓶颈
SELECT database_id,file_id,io_stall_read_ms,io_stall_write_msFROM sys.dm_io_virtual_file_stats(NULL,NULL)--查询I/O等待锁的统计信息SELECT wait_type,waiting_tasks_count,wait_time_ms,signal_wait_time_m原创 2010-01-27 14:10:00 · 3186 阅读 · 0 评论 -
聚簇索引与非聚簇索引的区别以及SQL Server查询优化技术
在《数据库原理》里面,对聚簇索引的解释是:聚簇索引的顺序就是数据的物理存储顺序,而对非聚簇索引的解释是:索引顺序与数据物理排列顺序无关。正式因为如此,所以一个表最多只能有一个聚簇索引。不过这个定义太抽象了。在SQL Server中,索引是通过二叉树的数据结构来描述的,我们可以这么理解聚簇索引:索引的叶节点就是数据节点。而非聚簇索引的叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。如下图转载 2010-01-19 20:36:00 · 2976 阅读 · 0 评论 -
MSSQL 调用C#程序集 实现C#字符串到字符的转化
10多年前用过MSSQL 调用C#程序集来实现数据的加密和解密,也搞过通过字符偏移实现简单的加密和解密。这次就总结一下吧:C#如下: public class CLRFunctions { /// <summary> /// 数据加密 /// </summary> /// <param name=...原创 2018-05-19 06:44:23 · 1621 阅读 · 0 评论 -
sqlserver 属性 TextHeader 不可用于 StoredProcedure“[dbo].[x]”该对象可能没有此属性,也可能是访问权限不足而无法检索。 该文本已加密。
打开sqlserver proc 存储过程错误:属性 TextHeader 不可用于 StoredProcedure“[dbo].[x]”。该对象可能没有此属性,也可能是访问权限不足而无法检索。 该文本已加密。 (Microsoft.SqlServer.Smo),提示如下图错误:注:本文基于SQLserver 2008R2,其他版本没有测试过解决方法:1、使用原有数据库从新导出非加密脚本重新建立...转载 2018-06-20 14:30:38 · 4976 阅读 · 2 评论 -
设置SQLServer的行版本控制隔离级别
1.--查询数据库状态select name,user_access,user_access_desc,snapshot_isolation_state,snapshot_isolation_state_desc,is_read_committed_snapshot_on from sys.databases2. 查看当前数据库的隔离级别 DBCC Useroptions -- isol...转载 2018-07-20 13:08:54 · 2007 阅读 · 0 评论 -
如何检查SQL Server 内存瓶颈
DBCC memorystatus --查询缓冲区池消耗的内存总量包括AWE SELECT SUM(multi_pages_kb+virtual_memory_committed_kb+shared_memory_committed_kb+ awe_allocated_kb) AS [Used by BPool, kb] FROM sys.dm_os_memory_原创 2010-01-27 12:40:00 · 3184 阅读 · 0 评论 -
如何检查SQL Server CPU瓶颈
--检测CPU压力的一个方法是计算运行状态下的工作进程数量,--通过执行如下的DMV查询可以得到这个信息SELECT COUNT(*) AS workers_waiting_for_cpu,t2.scheduler_idFROM sys.dm_os_workers AS t1, sys.dm_os_schedulers AS t2 WHERE t1.state=RUNNABL原创 2010-01-27 10:58:00 · 3399 阅读 · 0 评论 -
SQL2005中row_number( )、rank( )、dense_rank( )、ntile( )函数的用法
SQL server 2005新增的几个函数,分别是row_number( )、rank( )、,DENSE_RANK( )、ntile( )下面以实例分别简单讲解。1.row_number( ) 先来点数据,先建个表 SET NOCOUNT ONCREATE TABLE Person(FirstName VARCHAR(10),Age INT,Ge转载 2010-01-18 14:34:00 · 2684 阅读 · 0 评论 -
在SQL Server 2005 中开启SSL(图文结合)
要保证客户端与服务器实例通信的安全,可以采用SSL加密手段。SQLSERVER 2005运行在w2003上,w2003在域中,客户端可运行在XP,2003,WIN7。1. 安装证书服务,前提把IIS装上 2.安装成功后,在IIS中自动创建一个虚拟目录,如图 3.在浏览器中输入输入http://localhost/转载 2015-01-14 11:32:43 · 8979 阅读 · 0 评论 -
使用SQLServer 2008的CDC功能实现数据变更捕获
最近由于工作需要,研究了一下2008 CDC功能,觉得还不错,下面整理了一下研究过程,虽然比较粗略,但是基本上能用了,如果有补充请大家回复,我视情况修改原帖,谢谢。背景:在SQLServer2008之前,对数据变更的捕获通常使用触发器、时间戳等低效高成本的功能来实现,所以很多系统都没有做数据变更或者仅仅对核心表做监控。自从SQLServer2008引入了数据变更捕获功能转载 2015-03-11 09:57:15 · 2614 阅读 · 0 评论 -
Sql Server 2016 新功能——内置的 Temporal Tables
放假之前老大跟我提起了一下2016有个有趣的功能叫 Temporal Table ,今天去看了一下资料整理一下。这个功能看上去像是临时表,但是其实是系统维护的一个历史记录表。(在某个程度上面比起我们手动维护的历史表应该方便了一点的)简单直接的说,它的界面看起来是这样的(就像是T1一样) 创建了之后,就会在下面有一个T1History的表中表来记录。 然后我们来试下怎转载 2016-10-07 16:39:03 · 1804 阅读 · 0 评论 -
In-Memory:内存数据库
在逝去的2016后半年,由于项目需要支持数据的快速更新和多用户的高并发负载,我试水SQL Server 2016的In-Memory OLTP,创建内存数据库实现项目的负载需求,现在项目接近尾声,系统运行稳定,写一篇博客,记录一下使用内存数据库的经验。SQL Server 2016的In-Memory OLTP,通俗地讲,是内存数据库,使用内存优化表(Memory-Optimized Tabl转载 2017-01-06 18:14:42 · 2375 阅读 · 0 评论 -
使用TSQL查询和更新 JSON 数据
JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中。JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对和数组两种复杂数据类型,JSON仅仅使用逗号(引用Key)和中括号(引用数组元素),就能路由到指定的属性或成员,使用简单,功能强大。在SQL Server 2016版本中支持JSON格式,使用Unic转载 2017-01-07 08:47:54 · 5001 阅读 · 0 评论 -
Bulk Insert:将文本数据(csv和txt)导入到数据库中
将文本数据导入到数据库中的方法有很多,将文本格式(csv和txt)导入到SQL Server中,bulk insert是最简单的实现方法1,bulk insert命令,经过简化如下BULK INSERT schema_name . table_name FROM 'data_file' WITH (FIELDTERMINATOR = 'field_terminator',RO转载 2017-01-07 08:59:18 · 3497 阅读 · 0 评论 -
SQL Server 2008新特性——策略管理
SQL Server 2008新特性——策略管理转载 2010-06-27 22:27:00 · 2950 阅读 · 0 评论 -
[译] 使用Using Data Quality Services (DQS) 清理用户数据
SQL Server 2012 Data Quality Services (DQS) 允许你使用自己的知识库来清洗数据. 在本文中我会展示一个简单示例.使用DQS清理步骤如下:A. 建立DQS 知识库 B. 建立DQS项目然后根据知识库清理数据在SQL Server database中用下面脚本创建样本数据:CREATE TABLE MyCustomer转载 2014-11-17 13:12:57 · 3105 阅读 · 0 评论 -
sql server2012 远程访问设置
步骤打开SQL server2012,使用windows身份登录登录后,右键选择“属性”。左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式选择“连接”,勾选“允许远程连接此服务器”,然后点“确定”转载 2013-06-29 21:57:58 · 3785 阅读 · 0 评论 -
SQL Server中的UpdateText和WriteText命令
SQL Server中的UpdateText和WriteText命令转载 2010-09-25 11:22:00 · 3144 阅读 · 0 评论 -
SQL Server中的TextPtr函数
SQL Server中的TextPtr函数转载 2010-09-25 11:01:00 · 3095 阅读 · 0 评论