数据库(SQL Server)
文章平均质量分 74
songguozhi
IT新解:Intelligence Technology
展开
-
常用SQL Server语句整理
常用SQL Server语句整理目录1 SQL语句经典操作 31.1 在所有存储过程中查找指定字符串 31.2 返回当前数据库中每个分区的页和行计数信息 41.3 表格对象(例如,表、视图或表值函数)的索引或堆信息 51.4 清除数据库所有表的数据 51.5 查看数据库中那些表有数据存在(动态SQL) 61.6 获取表、列的注释、扩展信息 71.7 一条sql 语句搞定数据库分页 82 分区信息 82...原创 2021-02-03 17:37:52 · 482 阅读 · 0 评论 -
sql 代码格式化 优化 插件
<br />Red-Gate 的SqlPrompt:SQL SERVER的查询分析器的辅助工具 <br /> <br />SSMS Tools PACK:只适用于 SQL SERVER 2005 及更高版本,不支持SQL SERVER 2000 http://www.ssmstoolspack.com/Download.aspx<br /> <br />下载地址:http://download.csdn.net/source/2696390原创 2010-09-15 13:13:00 · 3484 阅读 · 0 评论 -
SQL Server中使用异常处理调试存储过程
异常处理被普遍认为是T-SQL脚本编程中的最弱的方面。幸运的是,这一点在SQL Server 2005中得到了改变,因为SQL Server 2005支持结构化异常处理。本文首先关注新特性“TRY……CATCH”的基本构成,然后在SQL Server 2000和SQL Server 2005中对照着看一些T-SQL的例子,这些例子中使用事务代码故意制造了一些违反约束限制的情况。将来的文章会继续探讨这一主题。<br /> 在SQL Server之前的版本中,你需要在执行INSERT,UPDATE,DEL原创 2010-09-14 12:52:00 · 1709 阅读 · 0 评论 -
在存储过程中编写正确的事务处理代码(SQL Server 2000 & 2005)
<br />在 SQL Server 中数据库事务处理是个重要的概念,也稍微有些不容易理解,很多 SQL 初学者编写的事务处理代码存往往存在漏洞,本文介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码。<br />在编写 SQL Server 事务相关的存储过程代码时,经常看到下面这样的写法: begin tran update statement 1 ... update statement 2 ... delete原创 2010-09-14 12:50:00 · 2039 阅读 · 1 评论 -
SQL Server中的Truncate命令
<br /> truncate操作 同没有where条件的delete操作十分相似。<br />1、无论truncate大表还是小表速度都非常快。delete要产生回滚信息来满足回滚需求,而truncate是不产生的。<br />2、truncate是DDL语句进行隐式提交,不能进行回滚操作。<br />3、truncate重新设定表和索引的HWM(高水标记),由于全表扫描和索引快速扫描都要读取所有的数据块知道HWM为止。所以全表扫描的性能不会因为delete而提高,但是经过truncate操作转载 2010-09-14 11:26:00 · 1199 阅读 · 0 评论 -
SQL SERVER临时表实用大全
<br />1.SQL SERVER临时表实用大全<br />老蓝笔记整理:<br />引子:<br /> 临时数据表格,我们在存储的时候经常遇见。<br /> 客户端可以实用Delphi的ClientDataSet的内存表,但是ClientDataSet类似TABLE,不是支持SQL语言的。<br /> 当然也可以实用临时表。有时我们避免临时表的生命周期的麻烦,更多的使用实际表临时用用。起个什么tempXXX类似的告诉我们他们是临时表。创建释放也没有问题。<br /> 那么临时原创 2010-09-13 21:18:00 · 862 阅读 · 0 评论 -
比较SQL Server 2005与SQL Server 2000分页技巧
我们以前在开发大数据量的分页存储过程时,往往都为了怎么样实现高效的性能,而大伤脑筋,似乎总是想写出最佳的存储过程分页方法。本文通过实例比较SQL Server 2005与SQL Server 2000分页存储技巧。 在Sql Server 2005中,我们可以利用新增函数row_number()来更高效的实现分页存储CREATE PROCEDURE p_GetStudentInfo @PageSize INT, @PageIndex INT, @strWhere varchar(1500) -- 查询转载 2010-09-13 09:39:00 · 624 阅读 · 0 评论 -
SQL数据库设计的几点心得
<br /> 数据库设计阶段可以说是以后整个系统性能的关键阶段,在这个阶段,几乎包含所有性能调优的过程。 <br /><br />在数据库设计完成后,可以进行初步的索引设计,好的索引设计可以指导编码阶段写出高效率的代码,为整个系统的性能打下良好的基础。 <br /><br /> 以下是性能要求设计阶段需要注意的: <br /><br /> 1、 数据库逻辑设计的规范化 <br /><br /> 数据库逻辑设计的规范化就是我们一般所说的范式,我们可以这样来简单理解范式: <br /><br /> 第1原创 2010-09-02 12:09:00 · 1100 阅读 · 0 评论 -
sql server 删除数据库中所有的外键关系
--sql server 删除数据库中所有的外键关系--同时也可以指定表--在数据导入前,还可以将外键关系全部取出来,存放,数据导入完毕后,全部重建declare @sql varchar(max), @tab_name varchar(128), @fk_name varchar(128);declare c cursor forselect OBJECT_NAME(parent_object_id), name from sys.objects where type='F'open cfetch ne原创 2010-09-12 09:45:00 · 3687 阅读 · 0 评论 -
SQL Server 数据库设计、命名、编码规范
2.简介<br />数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求<br />数据库设计和开发标准是使Newegg Support Center的数据库系统的设计和开发正式化的标准。通过此标准,来规范数据库设计。<br />通过一致的系统解决方案,能给我们的系统带来以下优点:<br /> 开发出高可管理性的高质量系统<br /> 能够快速的进行开发<br /> 减少维护代码的时间<br /原创 2010-09-02 13:08:00 · 5187 阅读 · 0 评论 -
SQL Server事务复制、快照复制、合并复制的区别
经常遇到sql server复制问题,向来没有深究过三者的区别,今天细查了:事务复制 • 将复制启用后的所有发布服务器上发布的内容在修改时传给订阅服务器; • 数据更改将按照其在发布服务器上发生的顺序和事务边界,应用于订阅服务器; • 在发布内部可以保证事务的一致性;快照复制 • 将数据以特定时刻的瞬时状态分发,而不监视对数据的更新; • 发生同步时,将生成完整的快照,并将其发送到订阅服务器; 合并复制 • 通常从发布数据库对象和数据的快照开始,并且用触发器跟踪在发布器和订阅服务器上所做的后原创 2010-08-29 16:00:00 · 3446 阅读 · 0 评论 -
SQL Server 2008对日期时间类型的改进
<br />在新版的SQL Server 2008中一口气增加了4种新的日期时间数据类型,包括: Date:一个纯的日期数据类型。 Time:一个纯的时间数据类型。 DateTime2:新的日期时间类型,将精度提到到了100纳秒。 DateTimeOffset:新的日期时间类型,在DateTime2的基础上增加了时区部分。<br /> <br />下面是在SQL Server 2008中日期时间数据类型的一个简单汇总表:<br /> 数据类型 格式 取值范围 精度 存储尺寸 Dateyyyy-mm-dd转载 2010-08-30 13:08:00 · 4388 阅读 · 3 评论 -
PowerDesigner 中 根据对象的name和comment 生成注释的办法
PowerDesigner 中 根据对象的name和comment 生成注释的办法‘* File: name2comment.vbs‘* Purpose: Database generation cannot use object names anymore‘ in version 7 and above.‘ It always uses the object codes.‘‘ In case the object codes are原创 2010-08-31 12:49:00 · 906 阅读 · 0 评论 -
实例讲解两台SQL Server数据同步解决方案
实例讲解两台SQL Server数据同步解决方案复制的概念 复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。 SQL复制的基本元素包括 出版服务器、订阅服务器、分发服务器、出版物、文章 SQL复制的工作原理 SQLSERVER主要采用出版物、订阅的转载 2010-08-29 15:06:00 · 952 阅读 · 0 评论 -
Transact-SQL编程规范
1. 基本原则<br />以大小写敏感编写SQL语句。<br />尽量使用Unicode 数据类型。<br />优先使用连接代替子查询或嵌套查询。<br />尽量使用参数化SQL查询代替语句拼接SQL查询。<br />禁止使用[拼音]+[英语]的方式来命名SQL对象或变量。<br /> 2. 命名规范<br />在一般情况下,采用Pascal样式或Camel样式命名数据库对象,使在开发基于数据库应用程序的时候通过ORM工具生成的数据访问代码(比如C#)更好的符合命名规范。另外,关系型数据库同Xml结合得原创 2010-09-02 12:10:00 · 736 阅读 · 0 评论 -
SQL Server 优化存储过程的七种方法
<br />优化存储过程有很多种方法,下面介绍最常用的7种。<br />1.使用SET NOCOUNT ON选项<br />我们使用SELECT语句时,除了返回对应的结果集外,还会返回相应的影响行数。使用SET NOCOUNT ON后,除了数据集就不会返回额外的信息了,减小网络流量。<br />2.使用确定的Schema<br />在使用表,存储过程,函数等等时,最好加上确定的Schema。这样可以使SQL Server直接找到对应目标,避免去计划缓存中搜索。而且搜索会导致编译锁定,最终影响性能。比如sel原创 2010-09-14 12:50:00 · 12720 阅读 · 15 评论 -
SQL Server 2005报表服务入门(一)
SQL Server 2005报表服务入门(一)一、创建并部署基本报表 在开发程序中,报表总是一件繁琐工作。其实报表就是格式化数据输出,真正需要编程的地方很少。而且报表工具也比较繁琐,要编写一个漂亮的报表,需要深入了解报表工具。SQL Server 2005 报表服务(SSRS 2005)简单易用。SSRS 2005 是SQL Server 2005的一个组件。购买SQL Server时就内置在其中了。它可以从多种数据源获取数据创建报表,简单易用。生成的报表可以直接在网站和应用程序中使用。可以导转载 2010-09-14 10:23:00 · 839 阅读 · 0 评论 -
SQL Server 2005之PIVOT/UNPIVOT行列转换(转)
SQL Server2005引入了很多迎合开发者口味的新特性,虽然改动不大,却大大了减少了开发者的工作量,这种替用户考虑的开发思路,值得称赞。<br />在SQL Server2000中,要实现行列转换,需要综合利用聚合函数和动态SQL,实现起来需要一定的技巧,所以在CSDN的SQL讨论区里可以看到大量询问行列转换如何实现的问题。到了2005中,使用新引进的关键字PIVOT/UNPIVOT,可以轻松实现行列转换的需求。<br />好像Oracle11g也准备引入PIVOT/UNPIVOT特性,对于O转载 2011-02-21 17:34:00 · 669 阅读 · 0 评论 -
数据库设计经验谈
<br /><br />数据库设计经验谈<br />--来源于网络,原作者不详。。。<br />--转帖并不代表本人完全同意以下观点,希望不要起到误导作用。。。<br /><br />一个成功的管理系统,是由:[50% 的业务 + 50% 的软件] 所组成,<br />而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序] 所组成,数据库设计的好坏是一个关键。<br /><br />如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。<br /><br />有关转载 2011-01-06 13:43:00 · 910 阅读 · 0 评论 -
使用 SQL Server DATEPART 函数来获取毫秒
可使用 SQL Server DATEPART() 函数来获取毫秒的 SQLServer datetime 字段返回到 VisualBasic 应用程序。使用 SQL Server DATEPART() 函数优点是简单地使用它并与所有版本的 ADO、 RDO 和 DAO。 缺点是使用 DATEPART() 函数是特定于 SQLServer。 但是, 其他服务器可能相当函数。不要混淆 SQL Server DATEPART() 函数与 VisualBasic DatePart() 函数, 用具有原创 2010-11-11 10:28:00 · 2120 阅读 · 0 评论 -
使用 SQL Server DATEPART 函数来获取毫秒
可使用 SQL Server DATEPART() 函数来获取毫秒的 SQLServer datetime 字段返回到 VisualBasic 应用程序。使用 SQL Server DATEPART() 函数优点是简单地使用它并与所有版本的 ADO、 RDO 和 DAO。 缺点是使用 DATEPART() 函数是特定于 SQLServer。 但是, 其他服务器可能相当函数。不要混淆 SQL Server DATEPART() 函数与 VisualBasic DatePart() 函数, 用具有原创 2010-11-11 10:28:00 · 4773 阅读 · 1 评论 -
SQL Server 2005企业版中DISTINCT和Order BY的错误
<br />在SQL Server 2005企业版中创建了一条SQL语句,其中包含了DISTINCT和Order BY;同时在列中ISNULL计算后使用了别名方式,Order by排序时使用的是ISNULL函数中的参数列,执行成功,没有任何问题。<br />但是在SQL Server 2005开发版中执行该语句时,出现<br />“消息 145,级别 15,状态 1<br />如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。”<br />的错误,需要将O原创 2010-11-09 10:25:00 · 1711 阅读 · 0 评论 -
SQLServer2005 Pivot 转置使用动态列
<br />转载自:http://www.cbf107.com/CBF107Item.aspx?ID=79c98c3e-aea2-46f9-baa7-1ccd067e2a81<br />SQLServer2005 Pivot 转置使用动态列(应用到视图)<br />最近项目中用到Pivot 对表进行转置,遇到一些问题,主要是Pivot 转置的时候没有办法动态产生转置列名,而作视图的时候又很需要动态的产生这些列,百度上似乎也没有找的很满意的答案,在google上搜到一老外的解决方案,现在自己总结了一下,希转载 2010-12-30 09:15:00 · 1320 阅读 · 0 评论 -
sql server 2005生成insert语句,同时完成多表
--=======================================================================================/* Example: EXEC sp_getInsertSql 'EXEC sp_getInsertSql'tab1 where 1=2,tab2'*/--==============================================================================原创 2010-12-20 17:01:00 · 5012 阅读 · 1 评论 -
SQL Server中将表中的数据生成INSERT 语句
DECLARE @SQL VARCHAR(max), @tabName VARCHAR(128), @colName VARCHAR(128), @colType VARCHAR(128), @cols VARCHAR(max), @colsData VARCHAR(max);DECLARE @colList TABLE(colName VARCHAR(128), colType VARCHAR(128), colValueL VARCHAR(20), colValueR VARCHAR(20));SELE原创 2010-10-22 13:29:00 · 1135 阅读 · 8 评论 -
sql server 2005 中的分区函数用法(partition by 字段)
<br />以下例子根据Item 分组后.排序.<br />应用例子如下:<br />if exists(select 1 from sys.objects where object_id=object_id('tab'))<br />begin<br /> drop table tab<br />end<br />go<br />create table tab(item int, date datetime, temp int)<br />insert tab select 10,'2006-01转载 2010-10-20 17:25:00 · 948 阅读 · 0 评论 -
SQL Server 2005分区表的实现以及修改
<br />--注意:在表中中构建好分区后,或者是添加了新的分区范围,以前的数据信息则会自动进行移动操作,以适应新的分区范围规则<br />--性能:由于采用了分区存储,提高了I/O性能,对于数据的查询性能有极大的提高<br />USE master;<br /> <br />IFEXISTS(SELECT 1 FROMsys.databasesWHEREname='db_test')<br /> DROPDATABASE db_test;<br /> <br />--创建数据库db_test<br原创 2010-12-03 14:00:00 · 1000 阅读 · 0 评论 -
Sql Server 2005中的快照隔离
Sql Server 2005中的快照隔离Sql Server2005提供了两种基于快照的隔离类型,他们都是利用行版本控制来维护快照的:<br />1、已提交读快照隔离(RCSI),通过修改数据库的一个选项来启用 <br />alter database AdventureWorks set READ_COMMITTED_SNAPSHOT on <br /><br />2、快照隔离(SI),必须在两个地方开启 <br />A、启用数据库的ALLOW_ISOLATION_SNAPSHOT选项 <br />al转载 2010-09-08 12:34:00 · 975 阅读 · 0 评论 -
SQL Server 2005中Datetime类型转Varchar类型
SQL Server 2005中Datetime类型转Varchar类型 <br />今天在写视图时,遇到要把Datetime类型转Varchar类型。以前在ORALCE就容易,直接ToChar(getdate(),'yyyy-mm-dd')。在SQL Server 2005却不会了,上网找了下,终于找到了方法。 <br />select CONVERT(varchar, getdate(), 120 ) <br />2004-09-12 11:06:08 <br />select CONVERT(varc原创 2010-09-16 14:53:00 · 2481 阅读 · 0 评论 -
(2008数据库同步)如何配置发布和分发 (SQL Server Management Studio)
<br />如何配置发布和分发 (SQL Server Management Studio)<br />SQL Server 2008 R2<br />其他版本<br /> <br />·SQL Server 2008<br />·SQL Server 2005<br />使用新建发布向导或配置分发向导配置分发。配置分发服务器后,可以在“分发服务器属性 - <分发服务器>”对话框中查看和修改属性。如果要配置分发服务器以使db_owner固定数据库角色的成员可以创建发布,或者要配置一个非发布服务器的远程分发服原创 2010-08-29 15:02:00 · 6320 阅读 · 0 评论 -
如何识别 SQL Server 的版本
如何确定正在运行的 SQL Server 2008 为哪个版本如果您不确定正在运行 SQL Server 的版本,可以查看 @@VERSION 返回的输出的最后一行,其中报告了您连接的版本。本文中使用的示例为在 Windows NT 5.0(内部版本 2195:Service Pack 2)上安装的 SQL Server 2000 Standard Edition。注意:早期提供的内部版本和 Service Pack 信息适用于操作系统,不适用于 SQL Server。 Standard Editi原创 2010-08-26 09:20:00 · 538 阅读 · 0 评论 -
SQL 2005将币值转换
<br />alterFUNCTION ChangeBigSmalls<br /> (@ChangeMoney money) <br />RETURNSVarChar(100)AS <br /> <br />BEGIN<br /> Declare @String1 char(20)<br /> Declare @String2 char(30)<br /> Declare @String4 Varchar(100)<br /> Declare @String3 Varchar(100原创 2010-06-28 09:46:00 · 593 阅读 · 0 评论 -
SQL SERVER中一些特别地方的特别解法
SQL code <!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/*------------------------------------------------------------------ Author转载 2010-04-23 10:30:00 · 548 阅读 · 0 评论 -
数据库批量备份存储过程(判断盘符、路径,错误盘符返回,不存在的路径自动创建)
---------------------------------------------------------------------------- Author : htl258(Tony)-- Date : 2010-04-18 10:45:14-- Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86转载 2010-04-21 15:26:00 · 477 阅读 · 0 评论 -
s数据库设计中的14个技巧
1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单据对应多个实体,或多张原始单据对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员原创 2010-04-16 14:06:00 · 604 阅读 · 0 评论 -
sys.columns (SQL Server 2005 )
为包含列的对象(如视图或表)的每列返回一行。下面是包含列的对象类型的列表。表值程序集函数 (FT)内联表值 SQL 函数 (IF)内部表 (IT)系统表 (S)表值 SQL 函数 (TF)用户表 (U)视图 (V)列名 数据类型 说明 object_idint此列所属对象的 ID。nam原创 2010-01-10 14:31:00 · 1244 阅读 · 0 评论 -
sys.identity_columns (sql server 2005)
sys.identity_columns 用作标识列的每列都在表中占一行。列名 数据类型 说明 sys.columns 继承的列> 有关此视图所继承列的列表,请参阅 sys.columns seed_valuesql_variant该标识列的种子值。种子值的数据类型与列本身的数据类型相同。原创 2010-01-10 14:38:00 · 859 阅读 · 0 评论 -
PowerDesigner生成MS SQL foreign 的问题
简单地说,就是从CDM生成PDM的时候,releationship约束无效,不能生成外键约束的代码。生成基于oracle的pdm没问题,ms sql server有问题 这里的是sql server 2005Power Designer是15.0.0.2613 看起來是PD的bug,解決辦法是在PDM畫面中點選Model->References... 會跳出一個視窗裡頭有這個PDM转载 2010-01-11 14:35:00 · 2675 阅读 · 0 评论 -
sys.objects (SQL Server 2005 )
在数据库中创建的每个用户定义的架构范围内的对象在该表中均对应一行。 注意: sys.objects 不显示 DDL 触发器,因为它们不是架构范围内的对象。所有触发器(包括 DML 和 DDL)都位于 sys.triggers 中。sys.triggers 支持用于各种触发器的混合作用域命名规则。 可以将 OBJECT_ID()、OB原创 2010-01-10 14:25:00 · 887 阅读 · 0 评论 -
SQL Server 字符串行转列
declare @t table(ID int,name varchar(10))insert @t values(1,张三)insert @t values(1,李四) insert @t values(1,王五) insert @t values(2,赵六) insert @t values(2,田七) ;with tb as(select row=row_number原创 2010-03-22 13:23:00 · 2570 阅读 · 1 评论