
SQL SERVER
火山码哥
专注
展开
-
SQLSERVER2005分区表讨论
表分区的问题讨论:1、当表存在大量数据时,即使指定分区查询 select top 10 * from LargeTable where $PARTITION.[PartitionFunction]([SplitDate])=22 速度还是很慢。 2、分区键必须是聚聚索引的一部分,不利于表优化。而且修改分区方案很麻烦。 3、除非在SQL中指定分区关键字段值,否则查询原创 2009-02-03 16:52:00 · 1095 阅读 · 0 评论 -
存储过程笔记
1、使用sql模板。如下所示:通常的做法:set @SQL=select +@col+ from +@tbl+ 较好的方法是:set @SQL_Template=select $col from $tblset @sql = replace(@SqL_template,$col,@col) 2、使用constraint或unique index来尽可能早原创 2009-11-16 09:12:00 · 430 阅读 · 0 评论 -
在ASP.NET程序中调试数据库对象
在ASP.NET程序中调试数据库对象数据库中直接调试可以让我们非常简单地在Visual Studio IDE里直接调试存储过程。 但是,有的时候我们需要在ASP.NET程序调用相关的存储过程的时候再调试。 这样,当某个数据库对象被调用的时候,我们就可以对其进行调试。 这种调试方法整合到了应用程序的调试之中。 要使用它需要做如下几步: 给你想要调试的数据库对象添加断点。 数据库对象只有转载 2009-11-16 09:24:00 · 617 阅读 · 0 评论 -
SQL 设计模式
1、SQL是一种说明性语言,不是过程化语言。类似“检索->检查->插入->更新”的过程化步骤的顺序是没有意义的。应该以行集的方式思考,以描述一个逻辑的语言方式思考。 2、在设计数据库表字段时,一个行描述应该包含一个事实,而且是全部事实。例如考勤卡的设计,不要设计为:[ userId, puchTime, eventFlag(in,out) ] --每行只是半个事实, 进门刷卡时间和出门原创 2010-01-15 02:10:00 · 1023 阅读 · 0 评论 -
SQL Server日期计算
通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下转载 2010-01-19 09:31:00 · 568 阅读 · 0 评论 -
SQL关系除法的思考
问题:查找哪些项目project正在使用工具站Tool的所有工具。 SELECT DISTINCT projectid FROM project P1WHERE NOT EXISTS (SELECT * FROM TOOL T WHERE NOT EXISTS (SELECT * FROM project P2 WHERE P2.toolid = T.tooli原创 2010-01-24 00:41:00 · 4188 阅读 · 1 评论 -
Microsoft SQL Server 2005的排序规则冲突解决(转)
现象: 在使用Microsoft SQL Server 2005时,要创建一个登录名,并为该登录名关联了一个数据库,但是在选择“安全对象”选项时,却出现了如题所示的错误。其他信息显示为:执行Transact-SQL语句或批处理时发生了异常(Microsoft.SqlServer.ConnectionInfo)。无法解决UNION操作中“SQL_Latin1_General_CP1转载 2010-01-03 01:53:00 · 4754 阅读 · 0 评论 -
MS-SQL 如何处理嵌套事务
相关SQL语句:BEGIN TRAN SAVE TRAN COMMIT TRAN ROLLBACK TRAN 嵌套事务示例:BEGIN TRAN Tran1BEGIN TRAN Tran2COMMIT TRAN 可以单独指定某个事务名,如Tran1,Tran2进行提交。其实也没什么效果,即使Tran2提交成功了,只要将外层事务Tran1回滚,Tr原创 2010-01-02 11:59:00 · 4004 阅读 · 1 评论 -
SQLSERVER 判断一个字符串是否包含特殊字符
DECLARE @Text VARCHAR(50)SET @Text = as df DECLARE @ExistSpaceChar INTDECLARE @StrCount INTSET @ExistSpaceChar = 0SELECT @StrCount = LEN(@Text)WHILE (@StrCount >0)BEGIN SELECT SUBSTRING(@T原创 2010-03-24 15:26:00 · 12233 阅读 · 0 评论 -
SQL Server Management Studio 自定义集成 TortoiseSVN
SQL Server Management Studio and TortoiseSVNI have been scouring the web trying to find a solution for integrating SVN control within转载 2011-08-23 11:22:50 · 1475 阅读 · 0 评论 -
SQL SERVER PIVOT 行列转换
原理:利用#Temp临时表 + sp_executesql 文本sql的方式。解决完全用文本SQL实现所有SQL的问题,那样代码不好检查错误和编写。 最近项目中用到Pivot 对表进行转置,遇到一些问题,主要是Pivot 转置的时候没有办法动态产生转置列名,而作视图的时候又很需要动态的产生这些列,百度上似乎也没有找的很满意的答案,在google上搜到一老外的解决方案,现在自己原创 2010-11-26 01:19:00 · 941 阅读 · 0 评论 -
触发器跟踪数据来源SQL
例子1:Trigger写一下log,看看是哪个sp修改的 CREATETRIGGER [dbo].[Trigger_Test] ON [dbo].[Test1122] FORUPDATEAS SET nocount ON --用临时表保存exec('DBCCINPUTBUFFER...')的返回值 CREATE TABLE #t原创 2012-02-29 09:11:29 · 903 阅读 · 0 评论 -
sql server 2005 加载程序集 CREATE ASSEMBLY
goexec sp_configure 'clr enabled', '1'goreconfigure;alter database [Channelloc] set trustworthy on CREATE ASSEMBLY [System.Drawing]authorization [dbo]from 'd:\sng\S转载 2013-04-01 09:54:46 · 1980 阅读 · 0 评论 -
SQL 常用语句
1、表操作。1.1 现有表增加字段alter table TableName add columnName1 varchar(2) NULL, columnName2 varchar(2) NULL, columnName3 varchar(2) NULL注意:不用加Column关键词,多个字段直接用逗号分隔,不用在外部加框框原创 2010-01-14 20:04:00 · 800 阅读 · 0 评论 -
在SQL Server 2005中实现异步触发器架构
在SQL Server 2005数据库中,通过新增的Service Broker可以实现异步触发器的处理功能。本文提供一种使用Service Broker实现的通用异步触发器方法。 在本这个方法中,通过Service Broker构造异步触发器处理架构,对于要使用这种架构的表,只需要创建相应的触发器及处理触发器中数据的存储过程,并且在异步触发器架构中登记触发器和处理的存储过程即可。如果一个触发转载 2009-10-15 15:48:00 · 494 阅读 · 0 评论 -
数据库死锁时紧急处理
SQLSERVER 数据库死锁的解决方案!sp_who kill spid SQLSERVER出现死锁的一个常见情况是: SQLSERVER2000创建一个数据库的数据库文件和日志文件的增长规则是按10%增长。假设数据库文件的容量积累到100GB,则下次数据库扩容时是按10%一次性扩大文件空间,也就是一次性要扩大10GB的空间。一次扩容10GB,将使硬盘严重负载,至少需原创 2009-10-15 15:02:00 · 646 阅读 · 0 评论 -
Sql Server排序规则的简介、选择、应用
一、排序规则简介: 什么叫排序规则呢?MS是这样描述的:"在 Microsoft SQL Server 中,字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存储和比较字符所使用的规则。" 在查询分析器内执行下面语句,可以得到SQL SERVER支持的所有排序规则。 select * from ::fn_helpcollations() 排序规则名称由两部份构成,前转载 2009-02-05 15:55:00 · 1960 阅读 · 1 评论 -
数据库快照笔记
-- 创建快照CREATE DATABASE TAHIS_Snapshot ON ( NAME = TAHIS2005_Data, FILENAME = C:/SQL2005Data/Snapshot/TAHIS_Snapshot.mdf)AS SNAPSHOT OF TAHIS2005--通过快照还原数据库。如果改变不大的话,速度很快,要求快照数据库和源数据库都不能有用户在使用use原创 2008-12-04 11:52:00 · 474 阅读 · 0 评论 -
SQL2000数据库置疑解决方法
1、不要分离数据库。2、执行脚本 USE MASTER GO SP_CONFIGURE ALLOW UPDATES,1 RECONFIGURE WITH OVERRIDE GO UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME=DataBase原创 2008-12-10 09:29:00 · 634 阅读 · 0 评论 -
SQLSERVER维护常用命令
--清除缓存DBCC FREEPROCCACHE DBCC DROPCLEANBUFFERS--查看数据库使用情况EXEC sp_spaceused--收缩数据库,保留10%可用空间DBCC SHRINKDATABASE (DataBaseName, 10)--事务执行SQL语句SET XACT_ABORT on begin tranDECLARE @count原创 2008-12-17 13:56:00 · 588 阅读 · 0 评论 -
MS SQL Server中的CONVERT日期格式化大全
CONVERT将某种数据类型的表达式显式转换为另一种数据类型。由于某些需求经常用到取日期格式的不同.现以下可在SQL Server中 将日期格式化.SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 style 值。给 style 值加 100,可获得包括世纪数位的四位年份 (yyy转载 2008-12-17 13:59:00 · 485 阅读 · 0 评论 -
实现跨数据库表同步的方法
描述:数据库A中的表table1,实时同步到数据库B1、在数据库A中设置访问数据库B的链接服务器。2、在两个数据库之间表中,选择一个表,对其新增、删除、修改操作设置触发器,通过触发器实现数据同步到其他数据库的表。-创建触发器,同步远程表_新增操作CREATE TRIGGER SYN_RemoteTable_Insert ON Table AFTER INSERTAS BEGIN原创 2008-12-17 14:00:00 · 8804 阅读 · 1 评论 -
统计SQLSERVER用户数据表大小
在SQLSERVER,简单的组合sp_spaceused和sp_MSforeachtable这两个存储过程,可以方便的统计出用户数据表的大小,包括记录总数和空间占用情况,非常实用,在SqlServer2K和SqlServer2005中都测试通过。1. exec sp_spaceused 表名 (SQL统计数据,大量事务操作后可能不准)2. exec sp_spaceused 表名,原创 2008-12-17 14:02:00 · 784 阅读 · 0 评论 -
SQL SERVER 链接服务器
1、當您嘗試從 64 位元 SQL Server 2005 用戶端對連結 32 位元 SQL Server 2000 伺服器執行分散式查詢時,可能會收到錯誤訊息64位到32位需要在32位的系统上打上SP1或者SP2补丁 或者和LZ的补丁程序没有打好,所以一下你的安装目录下面有没有一个脚本 instcat.sql 手工执行这个脚本也可以 给两个网址做参考: http://blog.csdn.ne原创 2008-12-17 14:03:00 · 617 阅读 · 0 评论 -
实战SQL Server2005数据库镜像
SQL Server 2005 是微软5年来具有里程碑性质的企业级数据库产品。在高可用技术、额外的备份和恢复功能,以及复制增强上的投资使企业能够构建和部署高可用的应用系统。SQL Server 2005在高可用上的创新有:数据镜像,故障转移集群,数据库快照和增强的联机操作,这有助于最小化宕机时间和确保企业的关键系统可用。下面我们将介绍数据库镜像技术。 一、数据库镜像 SQL Server原创 2008-12-17 14:03:00 · 570 阅读 · 0 评论 -
刷新SqlServer所有视图元数据的存储过程
我们在使用SqlServer时经常遇到这种情况,当修改某个表的结构后,相关的视图就不对了而导致程序错误,因此就有个下面这个存储过程。 exec sp_executesql @sqlCreateView CREATE PROCEDURE RefreshAllView ASDECLARE MyCursor CURSORFOR转载 2008-12-22 15:36:00 · 527 阅读 · 0 评论 -
通过select语句 返回表所有列名
Declare @str varchar(8000)set @str = SELECT @str = @str + column_name + , from information_schema.columnswhere table_name = PLUser order by ordinal_positionselect @str原创 2008-12-23 17:05:00 · 1294 阅读 · 0 评论 -
SQL Server 2005 SP3正式版下载
微软今天发布了SQL Server 2005 SP3的正式版,而这也将是该软件的最后一次升级服务,不过暂时只有英文版本,需要简体中文版的用户请稍等。SQL Server 2005 SP3版本号9.00.4035,作为一个累计升级包集成了此前所有的更新补丁,能全方位提升SQL Server 2005的各种服务等级,适用于企业版、企业评估版、开发者版、标准版、工作组版等所有商业版本。 下载地址(x原创 2008-12-24 00:13:00 · 3150 阅读 · 0 评论 -
烦人的中文乱码
汉字乱码问题 笔者曾经在使用ADO向SQL Server 6.5中追加或修改数据后,发现查询出来的汉字都是乱码,最初以为是客户端的环境有问题,后来打开服务器端的数据库,发现其中的汉字也都是乱码,费了九牛 二虎之力才找到原因:在追加和修改的过程中,ADO将字符进行了自动翻译(AutoTranslate),翻译后就成了乱码(Microsoft给我们开 了一个“小小”的玩笑),解决的办法就是不让它原创 2009-08-23 23:39:00 · 756 阅读 · 0 评论 -
SQL性能调校命令
DBCC DROPCLEANBUFFERS --清除缓冲区,便于对比查询时间和性能,不收缓存的影响sp_recompile --重新编译SP,也达到清除缓存效果查询语句,加空格,改变语句的内容,也同样达到清除缓存效果。SET STATISTICS PROFILE,IO,TIME ON SET STATISTICS TIME ON --显示分析、编译和执行原创 2009-10-15 16:05:00 · 540 阅读 · 0 评论