SQL Server 2000怎样配置发送电子邮件
通常大家都知道:SQL Server与Microsoft Exchange Server集成性很好,关于这方面的配置,在SQL Server的联机帮助里有详细的说明,在此不再赘述。然而我们更关心的问题是:在没有Exchange Server的情况下,如何配置SQL Server利用Internet 邮件服务器发送邮件? [@more@] 笔者曾为这问题伤透了脑筋,搜遍了互联网上的相关资料,发现仅有的几篇资料中有的是一笔带过,有的虽然介绍了操作步骤,可按照步骤一步一步操作下来,结果总是失败。为此笔者反复实验,终于找到一种简单有效的方法,不敢独自享受,下面是详细的配置步骤,如果您在操
[not] in/exists 与 带TOP的子查询
当子查询中带TOP时,有连接条件和无连接条件结果是不一样的。in和exists子句的结构也不一样。看例子。[@more@]create table a(id int)insert into aselect 1union select 2union select 3union select 4unionselect 5create table b(id int)insert into bselect 1union select 2union select 3-- 1select * from awhere id in(select top 2 id from b)-- 2select * from awhere id in(select top 2 id from b where b.id = a.id)-- 3select * from awhere exists(select top 2 id from b where b.id = a.id)-- 4select * from awhere
Microsoft SQL Server查询优化方法
Microsoft SQL Server查询优化方法[@more@]Microsoft SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2、I/O吞吐量小,形成了瓶颈效应。3、没有创建计算列导致查询不优化。4、内存不足5、网络速度慢6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。9、返回了不必要的行和列10、查询语句不好,没有优化e 可以通过如下
分组求TOP N记录
对数据先分组,在每组中取出TOP N记录。[@more@]实例:有Chinese, math, Music三科的成绩,求每科成绩前3(或前2或前1)名。drop table #tmp_scoregocreate table #tmp_score( ScoreID int primary key, ClassName varchar(10), StudentName varchar(10), Score decimal(5, 2))insert into #tmp_scoreselect 1, 'Chinese', 'Jerry', 70union allselect 2, 'Math', 'Jerry', 72union allselect 3, 'Music', 'Jerry', 81 union allselect 4, 'Chinese', 'Albert', 90union allselect 5, 'Math', 'Albert', 80union allselect 6,
移动数据库物理文件 Move Physical Files
移动数据库物理文件分为移动系统数据库物理文件和移动用户数据库物理文件。[@more@]在SQL Server 2000中,只能用alter database DB_NAME modify file移动tempdb数据库物理文件,也既只能对 tempdb 数据库中的文件指定 FILENAME。新 tempdb 文件名只有在 SQL Server 停止并重新启动后才能生效。确定 tempdb 数据库的逻辑文件名。 USE tempdb GO EXEC sp_helpfile GO --The logical name for each file is contained in the NAME column. 使用 ALTER DATABASE 更改每个文件的位置。 USE master GO ALTER DATABASE tempdb MODIFY FI
SQL Server 2000与2005归纳
自动编号:设字段类型为:int ,然后列属性中 (是标识)选是,标识种子选1。 用varchar(max)代替text。varchar的最大长度为8000,但是varchar(max)则可以存储多达2G的数据,因此其作用相当 于SQL 2000中的text。但是微软可能会后续的SQL Server版本中移除text类型,从现在就应该用varchar(max) 来代替text。 用nvarchar(max)代替ntext,用binary(max)代替image. 为XML数据选择xml类型。在SQL Server 2005中,为XML数据添加了相应的数据类型,因此存储XML数据的列不需要用 varchar(max)或nvarchar(max),而应当用xml数据类型,以
在C#中使用存储过程的方法
本文以Sql Server2000为例,示例数据库为china,表为test,来说明以C#中使用sql存储过程的方法。[@more@]一、test表的创建sql语句:create table test( uid int identity(1,1), class1 varchar(20), class2 varchar(20), uname varchar(20), birth smalldatetime, meno varchar(50))alter table testadd constraint primary_id primary key(uid)二、创建一个有输入、输出、返回值参数的存储过程:create proc proc_out @uid int,@output varchar(200) outputas--select结果集select * from test where uid>@uid--对输出参数进行赋值se
SQL Server中读取XML文件的简单做法
SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦。本文介绍在SQL Server中读取XML文件的简单做法。[@more@]SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦。 如果你参考Books Online(BOL),你会发现有相关的条目,包括OPENXML以及 OPENROWSET。所有的这些例子都支持将XML文本作为已经声明的变量,这对于经常处理文本的用户来说非常方便,但对于希望在开发中读取XML文件并进行相应处理的开发人员来说就不是这样
sql server 参考资源
各种sql server网站、网页等参考资源。[@more@]MSDN 和 TechNet 上的信息SQL Server Projectshttp://msdn.microsoft.com/en-us/library/c8dbfz8s.aspxDeployment (How Do I in C#)http://msdn.microsoft.com/en-us/library/ms228283.aspx资源 用户 SQL Server Developer Center 构建 SQL Server 数据库、报告系统和商业智能解决方案并将其应用到应用程序和网站的开发人员。Data Access and Storage Developer Center 使其应用程序和网站能够使用 SQL Server 和 Access 等产品中的存储数据的开发人员。XML Developer Center 其站点和应用程
SQL Server系统存储过程和参数示例
SQL Server系统存储过程和参数示例。[@more@]一些用在SQL 2000的企业管理GUI中,并且不打算用于其他的流程。微软已预计将其中的一些存储过程从未来的SQL Server版本中删除(或已经删除了)。虽然这些存储过程可能很有用并为你节省了很多时间,但是他们可以在任何时候改变他们的函数或简单的删除掉。 下面的图表显示了当许多存储过程从一个Microsoft SQL Server版本移入另一个版本时,引入了新的存储过程,而原来的一些则从安装包里删除了。大多数的存储过程,如果不是所有的,要求用户是系统管理员服务器角色以便执行这些存储过程。和
有关statistics
有关statistics[@more@]-- 1 查看/修改 数据库auto create statistics选项值sp_dboption 'CommunityServer', 'auto create statistics'sp_dboption 'CommunityServer', 'auto create statistics', 'TRUE'-- 2 查看表中索引index或统计collection的分布统计信息DBCC SHOW_STATISTICS ('cs_Sections', '_WA_Sys_ParentID_7D0E9093')-- 3 为某表更新统计信息-- 本示例仅更新表 authors 的索引 au_id_ind 的分发信息UPDATE STATISTICS authors au_id_ind-- 4为数据库中所有表更新统计信息EXEC sp_updatestats -- 5 查看数据库中所有index的统计
关于AXSD和SQLXML BULK LOAD
SQLXML是SQL SERVER对XML支持组件。通过它,我们可以快速的把XML读取到数据库表中;在这个过程开始前,我们需要使用AXSD来为XML和表之间定义mapping,这个过程叫做为表定义了XML视图。[@more@]一 AXSD1. 一定要在子表上定义和父表的relationship;如果没有指定,则错误提示子表Schema上需要relationship而未指定;2. complexType相当于子表。当不能直接在complexType上添加relationship批注(annotation)。应该将这个批注添加在使用这个complexType的地方;3. 在XSD中,属性和元素有什么区别吗?属性是单值;而元素如果放在sequence中,它将
通过作业定时同步两个数据库
定时同步服务器上的数据的例子:--测试环境,SQL Server2000,远程服务器名:xz,用户名为:sa,无密码,测试数据库:test--1. 链接服务器上的表create table [user](id int primary key,number varchar(4),name varchar(10))go--2. 本地服务器上的表--本机的表,state说明:null 表示新增记录,1 表示修改过的记录,0 表示无变化的记录if exists (select * from dbo.sysobjects where id = object_id(N'[user]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [user]GOcreate table [user](id int identity(1,1),number varchar(4),name var
DBCC的归纳
我们知道,在数据库系统的开发和应用中,必须保证数据库的完整性和一致性。 当数据库出现了严重错误;当我们怀疑数据库受到破坏(如无法用drop命令删除数据库或对象,使用某个表时出现“不可靠数据”的信息等);当用户改变了Server的缺省排序的顺序或改变了字符集而需要检查;当SA对系统做定期检查;这些时候,我们都需要使用数据库一致性检查工具(Database Consistenecy Checker,简称DBCC)。DBCC是一个实用命令集,用来检查一个数据库的逻辑一致性及物理一致性。在开发和应用中,DBCC是我们经常要使用的命令。 总之,DBCC命令所
递归存储过程中使用cursor
递归存储过程中使用cursor可以用来向上遍历有向图,找出其直系父辈。注意定义成local类型的cursor ![@more@]PROCEDURE sp_get_all_lineal_parent @node_id int, @lineal_path varchar(200) outputwith encryptionASSET NOCOUNT ONBEGIN IF ISNULL(@lineal_path, 'NULL') = 'NULL' SET @lineal_path = '' IF EXISTS( select DependentProductID from Dependence_TB where ProductID = @node_id ) BEGIN DECLARE cur_parent_node CURSOR FAST_FORWARD local FOR SELECT DependentProductID FROM Dependence_TB WHERE ProductID = @n
杀死所有的指定数据库的进程的存储过程
declare @spt table (spid int)declare @spid int , @sql varchar(255)insert into @sptselect spid --, kpid, waittype, waittime, lastwaittype, dbid, status, cmd, hostname, loginame, program_namefrom master.dbo.sysprocesseswhere dbid = db_id('YourDBName')and spid <> @@spiddeclare cur_spid cursor forselect spid from @sptopen cur_spidwhile @@FETCH_STATUS = 0begin fetch next from cur_spid into @spid set @sql = 'kill '+ cast( @spid as varchar ) exec (@sql)endclose cur_spiddeallocate cur_spidgo[@more
关于分布式事务配置及使用@win2003 and sqlserver2k
在多台SQL Server服务器之间进行事务处理时,我们用到分布式事务技术。分布式事务由 Microsoft 分布式事务处理协调器 (MS DTC))这类事务管理器或其它支持 X/Open XA 分布式事务处理规范的事务管理器进行协调。Microsoft提供了MSDTC(Distributed Transaction Coordinator)服务支持分布式事务。基本做法是,在两台SQL Server服务器上启动MSDTC服务,并在本地服务器上为另一台服务器建立Linked Server,这样本地服务器就可以访问另一台服务器。当对链接服务器执行分布式查询时,请对每个要查询的数据源指定完全合法的、由四部分组成的表名。
连接查询中不等式的运用
假设有这样一个实例:create table a(dept_id int, user_id int)insert into a select 1, 1insert into a select 1, 2insert into a select 1, 13insert into a select 1, 4insert into a select 2, 4insert into a select 2, 1insert into a select 2, 13insert into a select 3, 1insert into a select 3, 10insert into a select 3, 4select * from a表a记录着dept和user的关系,2个dept中只要有2个以上的相同user,那么我们就认为这2个dept有关联,把这样的dept找出来,返回:dept_id dept_id1 21 32
解决安装SQL Server时[Microsoft][ODBC 驱动程序管理器] 未发现数据源的问题
在Windows Server 2003 上安装 MS SQL Server 2000 时,最后阶段安装程序在配置服务器时,出现“[Microsoft][ODBC 驱动程序管理器] 未发现数据源”,具体提示为:###############################################################################正在启动?Chinese_PRC_CI_AS-m -Q -T4022 -T3659正在与服务?driver={sql server};server=CCC-0DE3AN8Q6DV;UID=sa;PWD=;database=master[Microsoft][ODBC 驱动程序管理器] 未发现数据源driver={sql server};server=CCC-0DE3AN8Q6DV;UID=sa;PWD=;database=master[Microsoft][ODBC 驱动程序管理
根据生日求年龄的SQL
精确到日。[@more@]-- 精确到日declare @birthday datetimedeclare @day datetimeset @birthday = '1975-10-18'select @day = getdate()select case when datepart(dd, @day) >= datepart(dd, @birthday) then datediff(mm, @birthday, @day)/12 else datediff(mm, @birthday,@day)/12 - 1 end