随笔分类 - mssql
摘要:原文http://www.cnblogs.com/tc310/archive/2010/09/17/1829276.htmlCREATE TABLE #test(fphm INT ,kshm CHAR(8))INSERT #testSELECT 2014,'00000001' UNION ALL SELECT 2014,'00000002' UNION ALL SELECT 2014,'00000003' UNION ALL SELECT 2014,'00000004' UNION ALL SELECT 2014,'000
阅读全文
摘要:--创建md5函数CREATE FUNCTION [dbo].[MD5](@src varchar(255) )RETURNS varchar(255)ASBEGIN DECLARE @md5 varchar(34) SET @md5 = sys.fn_VarBinToHexStr(hashbytes('MD5', @src)); --RETURN SUBSTRING(@md5,11,16) --16位 RETURN SUBSTRING(@md5,3,32) --32位ENDGO
阅读全文
摘要:SQL代理无法启动,版本2008R2,启动账户修改为新的管理员账户后启动不了,本地账户可以,处理:安全性-登录名添加该用户
阅读全文
摘要:在上一篇Sql Server参数化查询之where in和like实现详解中介绍了在Sql Server使用参数化查询where in的几种实现方案,遗漏了xml和表值参数,这里做一个补充文章导读方案5使用xml参数方案6 使用表值参数TVP,DataTable传参6种实现方案总结方案5 使用xml参数对sql server xml类型参数不熟悉的童鞋需要先了解下XQuery概念,这里简单提下XQuery 是用来从 XML 文档查找和提取元素及属性的语言,简单说就是用于查询xml的语言说到这就会牵着到XPath,其实XPath是XQuery的一个子集,XQuery 1.0 和 XPath 2.
阅读全文
摘要:文章导读拼SQL实现where in查询使用CHARINDEX或like实现where in 参数化使用exec动态执行SQl实现where in 参数化为每一个参数生成一个参数实现where in 参数化使用临时表实现where in 参数化like参数化查询xml和DataTable传参身为一名小小的程序猿,在日常开发中不可以避免的要和where in和like打交道,在大多数情况下我们传的参数不多简单做下单引号、敏感字符转义之后就直接拼进了SQL,执行查询,搞定。若有一天你不可避免的需要提高SQL的查询性能,需要一次性where in 几百、上千、甚至上万条数据时,参数化查询将是必然进行
阅读全文
摘要:解决方法很简单:卸载删除跟IIS相关的几个漏洞安全更新补丁即可,包括KB939373、KB2290570和KB2124261。卸载微软安全更新补丁的方法:打开控制面板的“添加删除程序”面板,勾选顶部的“显示更新”可显示系统中所有安装的补丁,找到如上所述的几个补丁,依次卸载掉即可。如果还没解决可以把以下几个相关的补丁也卸载掉:KB970483、KB2347290 、KB975558、KB942830、KB942831、 KB2121546、KB982802、KB981322。如果不想卸载以上所有补丁,可以在添加删除Windows组件中先卸载IIS,再重新安装IIS,注册asp.net也可。
阅读全文
摘要:--方法1.求分组数据中最小的前三条SELECT t1.*FROM dbo.info t1WHERE t1.name IN ( SELECT TOP 3 t2.name FROM info t2 WHERE t2.class = t1.class ORDER BY t2.score ASC ) ORDER BY t1.class DESC ,t1.score asc--方法2.求分组数据中最小的前三条SELECT * FROM(SELECT * , ( SELECT COUNT(1) FROM dbo.info t2 WHERE t1.score > t2.score AND t1.cl
阅读全文
摘要://1、HTML直接转文本//使用方法HtmlToText convert = new HtmlToText();textBox2.Text = convert.Convert(textBox1.Text);//代码/// <summary>/// Converts HTML to plain text./// </summary>class HtmlToText{ // Static data tables protected static Dictionary<string, string> _tags; protected static HashSet
阅读全文
摘要:一个备份集出错的恢复例子/******************************************尝试修复,出现错误*******************************************/restoredatabaseth114_oafromdisk='D:\DESK\2010-02-05.bak'withmove'TH114_OA_Data'to'd:\TH114_OA_Data.MDF',move'TH114_OA_Log'to'd:\TH114_OA_Log.ldf',stats/
阅读全文
摘要:一、问题现象在执行分布式事务时,在sql server 2005下收到如下错误:消息 7391,级别 16,状态 2,过程 xxxxx,第 16 行无法执行该操作,因为链接服务器 "xxxxx" 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。二、解决方案1.双方启动MSDTC服务MSDTC服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(Distributed Transaction Coordinator)服务。2.打开双方135端口MSDTC服务依赖于RPC(Remote Proced
阅读全文
摘要:----允许对系统表进行更新exec sp_configure 'allow updates',1reconfigure with overrideGO----取消标识列标记update syscolumns set colstat = 0 where id = object_id('tablename') and colstat = 1GO--插入id=8001-8003的行...----恢复标识列标记update syscolumns set colstat = 1 where id = object_id('tablename') and
阅读全文
摘要:SQL Server 2008中的FileStream支持服务器有一个属性,即指定该服务器是怎么支持文件流的/*实际上文件流的出现就是为了解决对大对象的存储中一个矛盾。对于大对象,第一种方式是存储在数据库里面,这种方式一般使用image字段,或者varbinary(max)来做。好处是可以统一备份,但实际上读取效率比较低。大于1MB的文件就会有问题第二种方式是文件存储在文件系统,而数据库中存储了一个路径。这种方式数据库压力减轻了,却很不方便统一备份和管理。SQL SERVER 2008的文件流其实就是二者的统一。文件还是放在文件系统的,但由数据库进行管理。可以统一备份和还原。FILESTREA
阅读全文
摘要:经常会有需求记录用户表中由DML操作(Insert/Updae/Delete)引起的数据变化,在SQL Server 2008 以前的版本中,要实现这样的功能只能通过Trigger或者数据比对(例如SCD处理),而且必须针对每个用户表开发。SQL Server 2008中新增了两种记录数据变化的功能,本文就Change Data Capture(CDC)和Change Tracking的特性做简要对比。 Change Data Capture CDC通过对事务日志的异步读取,记录DML操作的发生时间、类型和实际影响的数据变化,然后将这些数据记录到启用CDC时自动创建的表中。通过cdc相关的..
阅读全文
摘要:今天在将一个 SQL Server 2005 数据库附加到 SQL Server 2008 R2 时出现如下的错误:无法升级数据库 'SchoolPlatForm1',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)查看了数据库文件,他们并没有只读属性,在 SQL Server 2005 中附加都是一切正常的啊。从网上找了几种方式:1.将要附加的文件拷贝到 SQL Server 默认的 Data 目录,此时附加就会成功;(我用之种方式就可能正常附加数据.下面的几种方式没有尝试).(
阅读全文
摘要:SQL2005系统服务启动不了,具体出错信息:TITLE: 连接到服务器------------------------------无法连接到 SHARESUN/SQL2005。------------------------------ADDITIONAL INFORMATION:在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错) (Microsoft SQL Server, Error: -1)
阅读全文
摘要:在SQL Server 2005数据库中,通过新增的Service Broker可以实现异步触发器的处理功能。本文提供一种使用Service Broker实现的通用异步触发器方法。 在本这个方法中,通过Service Broker构造异步触发器处理架构,对于要使用这种架构的表,只需要创建相应的触发器及处理触发器中数据的存储过程,并且在异步触发器架构中登记触发器和处理的存储过程即可。如果一个触发器中的数据要被多个表使用,只需要在dbo.tb_async_trigger_subscribtion中登记相应处理数据的存储过程即可,即一个表的数据变更可以被多个表订阅(使用)。 架构的步骤如下: 1..
阅读全文
摘要:最近由于工作需要,研究了一下2008 CDC功能,觉得还不错,下面整理了一下研究过程,虽然比较粗略,但是基本上能用了,如果有补充请大家回复,我视情况修改原帖,谢谢。背景:在SQLServer2008之前,对数据变更的捕获通常使用触发器、时间戳等低效高成本的功能来实现,所以很多系统都没有做数据变更或者仅仅对核心表做监控。自从SQLServer2008引入了数据变更捕获功能(后面简称为CDC)后,解决了很多烦恼问题,如客户2个月前更改了一个数据,但是由于服务器空间不足,经常只能保留一个月的备份。此时客户为了逃避因为更改数据带来的较大负面影响,往往会把责任推给软件开发商或者运维商,如果此时有变更捕获
阅读全文
摘要:/********运行Sql Server Profiler所需的权限(performance)*********/--EG.-- 使用TRACE帐户(Performancetest)跟踪Sql Server事件.-- 创建TRACE登陆帐户(Performancetest),并授予其 ALTER TRACE和VIEW SERVER STATE的权限.USE MasterCREATE LOGIN Performancetest WITH PASSWORD='abc@1234'; GO GRANT ALTER TRACE TO Performancetest; GRANT VIE
阅读全文
摘要:操作步骤;1、检查tempdb的逻辑名字和它的存在位置。可以使用下面语句:SELECTname,physical_nameFROMsys.master_filesWHEREdatabase_id=DB_ID('tempdb');2、暂停数据库服务.3、拷贝原来tempdb的文件到新的位置(原来文件位置可以通过上述查询得到)。3、拷贝完毕后,启动数据库服务。4、执行如下命令:USEmaster;GOALTERDATABASEtempdbMODIFYFILE(NAME=tempdev,FILENAME='E:\tempdb\tempdb.mdf');GOALTERD
阅读全文