自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zjcxc(邹建)的Blog - SQL Server

引用或者转载本BLOG的文章请注明原作者和出处,并保留原文章中的版权信息。谢谢!

  • 博客(207)
  • 资源 (4)
  • 收藏
  • 关注

原创 初探 SQL Server 2008 中的更改跟踪与变更数据捕获

1                概述1.1        更改跟踪1.2        变更数据捕获1.3        比较更改跟踪和变更数据捕获2                使用2.1        更改跟踪2.2        变更数据捕获 1         概述“更改跟踪”和“变更数据捕获”捕获和记录用户表的DML更改(插入、更新和删除操作),为

2009-03-10 11:02:00 15331 5

原创 使用更改跟踪实现数据同步

 SQL Server 2008 引入了更改跟踪,这是一种轻量型解决方案,它为应用程序提供了一种有效的更改跟踪机制。通常,若要使应用程序能够查询对数据库中的数据所做的更改和访问与这些更改相关的信息,应用程序开发人员必须实现自定义更改跟踪机制。创建这些机制通常涉及多项工作,并且常常涉及使用触发器、timestamp 列和新表组合来存储跟踪信息,同时还会涉及使用自定义清除过程。通过更改跟踪,可

2009-02-23 06:59:00 9847 6

原创 误删除SSIS中的“Maintenance Plans”文件夹的恢复

在SQL Server 2005/2008中,维护计划的功能通过SSIS包来完成。如果不小心在SSIS管理中删除了"Maintenance Plans"文件夹,则在SQL Server中建立维护计划的时候会出现问题,如下图所示。 在Management studio中创建误删除的"Maintenance Plans"文件夹,如下图所示。 建立好"Maintenance Plan

2009-02-14 05:09:00 7459

原创 令人郁闷的“事务中的变量赋值错误”

           事务中的变量(包括表变量)的操作是不受事务控制的。但是反过来,事务中的变量操作失败,却会导致事务提交失败,这个有点让人郁闷。         下面的脚本演示这个问题。示例演示分拆以逗号分隔的 @ids 中的每个 id, 如果这个 id 是数字(int型),则做后面的处理;如果不是数字(赋值失败,进入CATCH块),则跳过这个id,处理下一个。整个处理在一个事务中进行。

2008-12-28 02:56:00 9320 2

原创 在 SQL Server 2005/2008 中,使用 Gmail 帐号配置数据库邮件功能

下面的脚本演示,在 SQL Server 2005/2008 中,使用 Gmail 帐号配置数据库邮件功能 -- =================================================-- 启用数据库邮件功能-- =================================================EXEC sys.sp_config

2008-12-13 14:12:00 8592 11

原创 将指定的表/视图中的数据导出为 html 文件

IF OBJECT_ID(Ndbo.p_ExportHtml) IS NOT NULL    DROP PROC dbo.p_ExportHtml;GO /*-- == 导出表/视图中的数据为html 文件====================== 此存储过程用于将指定的表/视图中的数据导出为 html 文件由于是使用存储过程, 因此文件目录基于 sql se

2008-11-10 03:45:00 9441 18

原创 将当前数据库中所有表的smalldatetime 列改为nvarchar(20)

-- 将当前数据库中, 所有表的smalldatetime 列改为nvarchar(20)-- 如果列上有索引/默认值之类的依赖项, 则无法修改EXEC sp_msforeachtable    @command1 = NDECLARE CUR CURSOR LOCALFORSELECT     NALTER TABLE ? ALTER COLUMN   

2008-11-07 11:30:00 6591 2

原创 如何在不提升用户权限的情况下,使普通用户执行xp_cmdshell存储过程

 环境需求:SQL Server 2005 及之后的版本 背景xp_cmdshell是一个很危险的存储过程,通过它,可以访问操作系统的资源,但有时候我们也需要使用它来实现一些特殊的处理。从安全的角度来考虑,禁用xp_cmdsehll是最保险的,即使为了特殊目的而要求使用它,也最好能够编写一些实现这个特殊目的的用户存储过程,只在这个用户存储过程中使用xp_cmdshell,而

2008-09-19 11:15:00 12118 7

原创 如何在不提升用户权限的情况下,使普通用户执行sp_OACreate存储过程

环境需求:SQL Server 2005 及之后的版本 背景在论坛上遇到一个问题,询问如何使用一个普通用户调用一个存储过程,这个存储过程使用了sp_OACreate这一系列存储过程来执行一些非常规的任务。当然,前提是普通用户只有调用这个存储过程的时候才能获得执行sp_OACreate的权限。最初的时候也没有仔细考虑,心想,sp_OACreate需要具有sysadmin固定服务器角色

2008-09-16 11:07:00 10403 2

原创 安装SQL Server 2008 及 VS 2008

SQL Server 2008 正式发布了,在中文系统下安装中文版时,始终有些问题,今天狠心把操作系统一齐重新装了,结合之前安装时碰到的问题的解决经验,这次总算是一次性安装成功。环境:64位环境(32位环境不一定有问题,英文Windows XP下安装英文版没有本文中提到的问题)Windows 2008 SQL Server 2008Visual Studio 2008 +

2008-08-31 11:09:00 20919 10

原创 在 VMWare 中配置 SQL Server 2005 N + 1 群集 (五) SQL Server 群集维护

5.        SQL Server群集维护对于SQL Server群集,其维护主要在于调整SQL Server配置及添加或删除群集结点方面。5.1      调整SQL Server配置对于SQL Server配置的调整,应该通过SQL Server的配置管理器来完成(StartàProgramsà Microsoft SQL Server 2005à Configurati

2008-06-25 13:22:00 10616 12

原创 在 VMWare 中配置 SQL Server 2005 N + 1 群集 (四) SQL Server 安装

4.        SQL Server安装一台服务器上,只能安装一个SQL Server默认实例,在群集中安装SQL Server也有此限制。本示例需要提供两个SQL Server实例,故不考虑安装默认实例。两个实例都安装为命名实例。4.1      安装第一个SQL Server实例(SQL01)SQL Server安装可以在任何一个群集中的结点上进行安装。示例中选择“SQLS

2008-06-25 13:00:00 16828 4

原创 在 VMWare 中配置 SQL Server 2005 N + 1 群集 (三) 群集安装

3.        群集安装群集的安装包括Domain的安装(DNS和域的创建)、群集的创建及群集结点添加三部分。3.1      DomainDomain具有DNS和域两大角色。3.1.1        安装和配置DNS3.1.1.1安装DNS打开添加/删除程序(Control PanelàAdd  or Remove Programs),在随后出现的“Add  or

2008-06-25 12:42:00 18856 2

原创 在 VMWare 中配置 SQL Server 2005 N + 1 群集 (二) 在Vmware配置虚拟机

2.        在Vmware配置虚拟机所以的OS均使用Windows Server 2003企业版,故可以创建一台虚拟机,完成基本的配置和安装,最后使用Sysprep工具抽取SID后关机并做一个快照,然后克隆出另外4台虚拟机(也可以不使用Sysprep工具,直接克隆,然后使用newsid这个小工具重新生成SID并修改计算机名)。2.1      创建第一台虚拟机(模板机)VM

2008-06-25 11:50:00 23257 2

原创 在 VMWare 中配置 SQL Server 2005 N + 1 群集 (一) 环境

 1.        实验环境Vmware Server 1.0.6SQL Server 2005 企业版Host OS: Windows Server 2003 企业版Guest OS:Windows Server 2003 企业版1.1      背景所谓N+1的SQL Server群集,主要是以节约成本为出发点的一种群集方案。一般的SQL Server群集,每个S

2008-06-25 11:08:00 16323 13

原创 【结果】-《深入浅出——SQL Server 2005开发、管理与应用实例》大家评活动

 我的新书《深入浅出——SQL Server 2005开发、管理与应用实例》大家评活动结束 活动地址:http://topic.csdn.net/u/20080324/10/1aafa8b9-ede5-4b95-8862-ce79ff4db6c5.html 首先谢谢大家热情参与此次书评活动. 根据活动的参与情况, 本次活动的获奖结果如下: 优秀评论奖(7名, 原计划 10 名, 但因为进行

2008-04-24 10:45:00 6587 16

原创 《深入浅出——SQL Server 2005开发、管理与应用实例》 销售商列表

安徽万品图书经营有限公司 北京奥维博世图书发行有限公司(互动出版)  北京百万庄图书大厦有限公司 北京百万庄图书大厦有限公司

2008-03-27 11:26:00 8952 6

原创 《深入浅出——SQL Server 2005开发、管理与应用实例》简介

编辑推荐继《中文版SQL Server 2000开发与管理应用实例》后的又一力作,从应用、开发和管理3个角度逐步深入,全面介绍SQL Server 2005数据库技术,不但融合了资深专家数年工作实践和宝贵经验,还根据DBA所需具备的从业素质对内容进行了布局。  精彩内容:安装和升级SQL Server,T-SQL增强,T-SQL应用,XML数据处理,CLR集成,开发SQL Server应用程序

2008-03-27 04:39:00 7174 11

原创 SQL Server 2005 中实现通用的异步触发器架构

  在SQL Server 2005中,通过新增的Service Broker可以实现异步触发器的处理功能。本文提供一种使用Service Broker实现的通用异步触发器方法。在本方法中,通过Service Broker构造异步触发器处理架构,对于要使用这种架构的表,只需要创建相应的触发器及处理触发器中数据的存储过程,并且在异步触发器架构中登记触发器和处理的存储过程即可。如果一个触发器中

2008-03-10 07:32:00 11417 17

原创 发布一个"文本/文件朗读"小软件

对于经常看小说的人来说,容易眼睛疲劳。Vista 下的语音合成技术已经做得很不错,故此引用此技术写了一个可以朗读文本/文件的小软件。软件使用说明:1. Start  -- 开始朗读: 当 文本框中有数据时, 读文本框中的文本; 如果上次朗读的文件没有读完, 则继续朗读上次朗读的文件;  如果前两个都没有相应的内容, 则显示文件选择对话框选择要朗读的文件2. Pause  -- 暂停/恢

2008-03-10 03:12:00 4492 5

原创 SET NOCOUNT 的怪问题

/**//*-- SET NOCOUNT 的问题SQL 版本: SQL Server 2005 3159故障描述:当满足下述条件时, SET NOCOUNT 导致 TRY ... CATCH 无法正确处理错误1. 使用 EXEC() AT  或者 EXEC ..dbo.sp_executesql 2.  中包括输出参数3.  中包括 SET NOCOUNT ON 和 USE  语句(注意不能更

2008-01-20 07:03:00 3254

原创 解决VISTA下安装VS 2005需要先安装XP SP2的问题

 最近在 Vista 下安装 Vs 2005,遇到一个暴郁闷的问题,安装过程居然提示需要先安装 XP SP2,而且提示中没有继续安装,只有退出安装程序可选。在网上没有找到解决方案,偶然搜索到可以把VS 2005 SP1集成到VS 2005安装程序中,经过摸索,终于成功制作了包含VS 2005 SP1的VS 2005安装程序,通过它成功地在VISTA中安装上VS 2005。简述如下(步骤

2008-01-08 12:48:00 6765 9

原创 乘车线路查询

 背景有如下表示乘车线路和站点的数据,要求查询出指定站点之间的所有乘车线路:USE tempdbGO -- 模拟数据SET NOCOUNT ONIF OBJECT_ID(Ntempdb..#tb) IS NOT NULL    DROP TABLE #tbCREATE TABLE #tb(    id int IDENTITY    

2008-01-02 07:41:00 11258 15

原创 使用临时表 + 循环展 BOM

背景有如下的 BOM 表,parent_part 与 child_part 是多对多的关系,现在要求查询出每个 child_part 的最顶层的 parent_partCREATE TABLE pl_bom(    parent_part varchar(10),    child_part varchar(10))INSERT INTO pl_bomSELEC

2007-08-29 13:15:00 11897 15

原创 如何控制触发器递归

 背景A表UPDATE后,取B表某列再次UPDATE A表,这样又触发了A表的 UPDATE  触发器,我的目的是只触发一次,是否设置 nested triggers 选项关闭递归触发器即可?分析首先,必须清楚触发器递归的定义,触发器有两种递归方式:1.     直接递归A表上的触发器更改(插入/删除/更新)A表数据,导致A表的触发器再次触发,这种状况称之为

2007-08-05 03:06:00 11067 4

原创 只让指定的机器连接SQLServer服务器

背景只想使某个IP的计算机才能连接到SQL Server服务器,不允许其他客户端连接。解决方法可以直接在防火墙中做限制,只允许与指定的IP地址建立1433的通讯。当然,从更为安全的角度来考虑,应该把1433端口改成其他的端口。其他解决方法1(限从指定IP接入的客户端)如果使用SQL Server 2005,还可以通过端点限制的方法来实现,此方法要求一块专

2007-08-05 01:54:00 12076 12

原创 选择合适的游标类型

背景:定义游标的时候, 如果不指定STATIC 关键字的时候, 则默认定义的游标是动态(DYNAMIC) 的动态(DYNAMIC) 游标会反映在滚动游标时对结果集内的各行所做的所有数据更改。行的数据值、顺序和成员身份在每次提取时都会更改。动态游标不支持ABSOLUTE 提取选项。因为动态游标会消耗资源去检查基础表的更新, 所以对于复杂的查询, 且不需要反映基础表更新情况的游标处

2007-05-12 17:27:00 8595 4

原创 认识静态与动态游标

背景:静态(STATIC)游标创建将由该游标使用的数据的临时复本。对游标的所有请求都从tempdb 中的这一临时表中得到应答;因此,在对该游标进行提取操作时返回的数据中不反映对基表所做的修改,并且该游标不允许修改动态(DYNAMIC) 游标会反映在滚动游标时对结果集内的各行所做的所有数据更改。行的数据值、顺序和成员身份在每次提取时都会更改。动态游标不支持ABSOLUTE 提取选项。

2007-05-12 17:23:00 7273 4

原创 游标类型产生的数据检索问题

表现:将数据库兼容级别从80 改到90 后, 下面的游标循环不出数据, 但单独SELECT 有结果DECLARE MyCursor CURSOR LOCAL READ_ONLYFOR  SELECT    Col1FROM tbname WITH(NOLOCK) WHERE Name LIKE SNET%    AND B_Key IN(    

2007-05-12 12:30:00 4420

原创 无法在SQL 2005系统数据库中执行的T-SQL语句(XML处理)

表现:下面的代码, 在兼容性级别90的所有用户数据库和tempdb库中都能执行, 但无法在系统数据库中执行, 执行会收到如下错误:Msg 4121, Level 16, State 1, Line 2Cannot find either column "dbo" or the user-defined function or aggregate "dbo.f_test", or

2007-05-12 12:27:00 6009

原创 使用TableDiff实用工具解决事务复制中的问题

  事务复制是数据同步中常用的一种手段,复制过程难免会遇到不少问题,就笔者遇到的问题而言,一般有两大类:一类是通过重新启动Distributor Agent即可解决的问题,另一类是因为Subscriber修改了数据,导致发布的数据有冲突,这类问题一般需要手工去修复。TableDiff是SQL Server 2005的一个命令行实用工具,该工具可以比较两个表,并且生成数据同步的脚本。借助这个

2006-12-27 20:33:00 7950 11

原创 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除

问题描述:某个基础信息表,与系统中30多个表存在外键关系,当删除基础数据时,需要判断是否已经被用过,如果用过则更改标志位,如果没有用过则直接删除,如何能很好实现这个处理?最好能够自动适应表的变化 问题解决(SQL Server 2005)-- SQL Server 2005的错误处理容易控制, 因此, SQL Server 2005中可以直接删除, 通过错误处理

2006-09-18 11:30:00 12964 10

原创 在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合

 问题描述:在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合。组合的个数限制在2 和3。比如有数字(39,40,1,55,17,17……N)数字可以有重复。找出的组合有(50,50),(21,41,39),(48,50)……M。在上面的数字在组合中每次只能出现一次(比如数字中40只出现过一次,那在组合中也只能出现一次。17出现过两次那在组合

2006-09-17 21:00:00 7341 6

原创 SELECT 赋值与ORDER BY冲突的问题

问题描述:使用 SELECT 语句,轮询表中的数据,并且处理变量数据时,如果有ORDER BY语句,则得不到想要的结果,但去掉ORDER BY,结果正常。具体的问题表现参考下面的问题重现代码 问题重现代码-- 测试数据DECLARE @T TABLE(id int,value nvarchar(16))INSERT INTO @T SELECT

2006-09-17 20:19:00 10888 14

原创 UPDATE 时, 如何避免数据定位处理被阻塞

问题描述:数据库PUBS中的authors表,想锁定CITY为aaa的记录,为什么执行下面的命令后,CITY为bbb的记录也被锁定了,无法进行UPDATE.BEGIN TRANSACTION         SELECT * FROM authors     WITH (HOLDLOCK)     WHERE city=aaa 如何才能锁定CITY为AAA的记录,而

2006-09-17 13:24:00 7369 3

原创 SSIS处理导入数据时, 存在的更新, 不存在的插入

问题描述:当你把数据从其他数据库, 或者是文本文件之类的其他数据源导入到目的数据库时, 有时希望在导入的处理中, 能够实现"数据存在时更新, 不存在时导入"在之前, 一般是通过导入临时表, 然后再判断处理导入正式表的, 在SQL Server 2005中, SSIS可以在导入处理时直接完成这种处理. 下面具体演示一下如何用SSIS完成这样的处理:1.        

2006-09-10 12:43:00 27101 16

原创 使用事务与锁,实现一个用户取过的数据不被其他用户取到

问题描述:用ADO访问数据库,从一个表中取一定的记录(比如20行),取出后在程序中使用,使用完后删除掉记录(不用更新或删除记录)。在多用户操作下(每个用户采用相同的操作),怎么保证一个用户已选取的记录不被其他用户选取? 问题解决:处理这类问题的一般方法是增加一个标志列,每个用户取的记录设置一个标志,新的用户只从标志为未取的记录中获取记录。而本文利用事务与锁来

2006-08-28 20:31:00 10486 13

原创 如何快速生成100万不重复的8位编号

最近在论坛看到有人问,如何快速生成100万不重复的8位编号,对于这个问题,有几点是需要注意的:1.    如何生成8位随机数,生成的数越随机,重复的可能性当然越小2.    控制不重复3.    考虑性能针对这个问题,我写了如下的示例来解决,希望能为有这类需求的人提供指导 生成100万条8位不重复数据的示例USE tempdbGO -- 创建测试

2006-08-20 11:28:00 23831 19

原创 无法在 SQL Server 2005 Manger Studio 中录入中文的问题

问题表现:在 SQL Server 2005 Manger Studio中打开表,无法输入中文,只能输入英文 问题重现:1.  我们建立如下三个测试表:CREATE TABLE ta(    id int IDENTITY,    col varchar(50)) CREATE TABLE tb(    col varchar(50), 

2006-08-20 10:49:00 13246 12

原创 如何用T-SQL语句建立跟踪

一、       用脚本启动并设置跟踪的示例通过这个示例,你可以了解用脚本进行跟踪所涉及到的存储过程,要了解这些存储过程的具体语法和参数的含义,请查询联机帮助/****************************************************//* Created by: SQL Profiler                        

2006-08-02 21:40:00 7480 1

customer for user

sheet1 原始 sheet2 不重复ic sheet3 重复ic sheet4 所有ic(去掉重复)

2008-10-26

customer for user

customer for user 这个东西好烦哦

2008-10-26

Text Speech Source Code

使用 Vista 的文本合成语音技术, 用于朗读文本或者文件<br>(附件为源代码)<br>软件说明:<br>1. Start -- 开始朗读: 当 文本框中有数据时, 读文本框中的文本; 如果上次朗读的文件没有读完, 则继续朗读上次朗读的文件; 如果前两个都没有相应的内容, 则显示文件选择对话框选择要朗读的文件<br><br>2. Pause -- 暂停/恢复 朗读. 如果要调整朗读的位置, 则需要先暂停朗读, 然后在 Pause 下面选择 Resume Current Position<br><br>3. Stop -- 停止朗读. 停止朗读后, 如果要恢复朗读: 如果朗读的是文件, 则可以通过 Start - Speech File Resume 来恢复朗读; 如果朗读的文本, 则需要先选择要朗读的文本, 再单击 Start 来恢复朗读

2008-03-10

Text Speech

使用 VISTA 的文本语音合成技术, 用于朗读文件(或者文本).<br>适用于 VISTA<br><br>使用说明:<br>1. Start -- 开始朗读: 当 文本框中有数据时, 读文本框中的文本; 如果上次朗读的文件没有读完, 则继续朗读上次朗读的文件; 如果前两个都没有相应的内容, 则显示文件选择对话框选择要朗读的文件<br><br>2. Pause -- 暂停/恢复 朗读. 如果要调整朗读的位置, 则需要先暂停朗读, 然后在 Pause 下面选择 Resume Current Position<br><br>3. Stop -- 停止朗读. 停止朗读后, 如果要恢复朗读: 如果朗读的是文件, 则可以通过 Start - Speech File Resume 来恢复朗读; 如果朗读的文本, 则需要先选择要朗读的文本, 再单击 Start 来恢复朗读

2008-03-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除