怎样设置sql server 中的sql mail,使我可以通过sql server中的存储过程发邮件

vinx 2000-12-13 12:27:00
怎样设置sql server 中的sql mail,使我可以通过sql server中的存储过程发邮件?
help me,
...全文
429 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vinx 2000-12-14
  • 打赏
  • 举报
回复
那篇文章我看过,上面讲的是如何使用存储过程发信的方法,但是我要的是如何设置sqlserver,让这些存储过程有效,
vinx 2000-12-14
  • 打赏
  • 举报
回复
太感谢了,呵呵,
能告诉我这篇文章出自哪里吗?
万分感谢,:)
wanghu 2000-12-14
  • 打赏
  • 举报
回复



(文摘)SQLMail的原理及实际应用

关键词:Sql Server

-概述

----这里所指的SQLMail,是微软公司的关系数据库管理系统
SQLServer所提供的邮件功能。在SQLServer中包含一些扩展存储
过程,使得SQLServer可以通过基于WindowsNT内部的消息应用编
程界面(MAPI)的客户机邮件程序接收和发送邮件消息。SQLMa
il可发送的消息包括文本串,附加文件或SQL语句的执行结果
集。应用SQLMail的扩展存储过程,邮件消息可以从一个触发
器或一个存储过程中发送,并且通过SQLServer提供的任务和警
告等功能,可以根据需要在不同的时间和情况下发送。

----SQLMail工作流程

----SQLMail工作流程主要分为邮件收、发两个过程。

----在SQLServer内可以通过一定方法,调用扩展存储过程xp_s
endmail,将收信人电子邮件地址,标题,信的内容等以参数的
形式传送给xp_sendmail,由它通过客户端MAPI接口将发送邮件任
务交给如MicrosoftExchangeClient或Outlook97等邮件客户端程序,
最终通过邮件服务将邮件发送出去。

----收邮件的过程与此相似。在SQLServer端定期或手工调用x
p_readmail扩展存储过程,通过客户端MAPI接口将存放在邮件服
务器或客户端的邮件及其他信息读入SQL变量中,用来满足特
定的处理需要。
配置SQLMail

----配置SQLMail的首要条件是要有一个电子邮件帐户,不管
是局域网内的MSExchangeServer或MSMail3.x的邮件帐户,还是Int
ernet上的SMTP,POP3等邮件帐户均可。具体配置可分为以下几步


----1.为SQLServer创建一个NT域用户帐号,要求具有本地管
理员组的权限。仔细设置帐号口令,保证口令足够复杂,且
设成口令永不过期和用户不得更改口令。

----2.双击控制面板的服务图标,找到MSSQLServer的启动设
置,将UseSystemAccount改为UseThisAccount,将刚才建立的NT帐号
和口令输入。重新启动SQLServer。

----3.在安装SQLServer的服务器上以与启动SQLServer相同的
NT帐号登录,然后安装支持MAPI接口的邮件客户端程序,如MS
ExchangeClient和Outlook97。

----4.打开控制面板的电子邮件选项,建立一个配置文件
(Profile)。用这个配置文件启动邮件客户端程序,反复检验
直至能正常收发邮件。

----5.从SqlEnterpriserManager中,点中相应的服务器图标,从
Server菜单中选SQLMail/Configure,将在第4步中建立的配置文件
名输入。

----6.从SqlEnterpriserManager中,点中相应的服务器图标,从
Server菜单中选SQLMail/Start,如果SqlMail的图标变为绿色,则SQ
LMail成功启动。

----常用的SQLMail扩展存储过程

xp_sendmail@recipient=recipient

[;recipient2;[...;recipientn]]

[,@message=message]

[,@query=query]

[,@attachments=attachments]

[,@copy_recipients=recipient

[;recipient2;[...;recipientn]]]

[,@blind_copy_recipients=recipient

[;recipient2;[...;recipientn]]]

[,@subject=subject]

[,@type=type]

[,@attach_results={'true'|'false'}]

[,@no_output={'true'|'false'}]

[,@no_header={'true'|'false'}]

[,@width=width]

[,@separator=separator]

[,@echo_error={'true'|'false'}]

[,@set_user=user]

[,@dbuse=dbname]

----此存储过程通过客户端MAPI接口发送邮件,内容可以是
文本串,附加文件或SQL语句的执行结果集。

xp_findnextmsg[@msg_id=msg_id[OUTPUT]]

[,@type=type]

[,@unread_only={'true'|'false'}])

----此存储过程在邮箱中查找特定的邮件,并返回一封邮件
的消息ID。

xp_readmail([@msg_id=msg_id][,@type=type[OUTPUT]]

[,@peek={'true'|'false'}]

[,@suppress_attach={'true'|'false'}]

[,@originator=@senderOUTPUT]

[,@subject=@subject_lineOUTPUT]

[,@message=@body_of_messageOUTPUT]

[,@recipients=@recipient_listOUTPUT]

[,@cc_list=@cc_listOUTPUT]

[,@bcc_list=@bcc_listOUTPUT]

[,@date_received=@dateOUTPUT]

[,@unread={'true'|'false'}]

[,@attachments=@temp_file_pathsOUTPUT])

[,@skip_bytes=@bytes_toskipOUTPUT]

[,@msg_length=@length_in_bytesOUTPUT])

----此存储过程从指定的邮件收件箱中读取指定消息ID的邮
件的各项信息。

----xp_deletemail[@msg_id=]msg_id

----从邮件收件箱中删除一封指定消息ID的邮件。

----注释:

----1.存储过程的多个参数间用逗号间隔开,[]内的为可选
参数,每个参数均以@符号加字符串开头,用以区别不同的参
数项。等号后可以是常量,也可以是预先定义好的变量。

----2.如果需要将某个结果值赋予参数中预先定义好的变
量,就必须在该项参数的最后加OUTPUT。

----3.常用参数解释:

----?@recipient=recipient;指定收件人的电子邮件地址。如
果有多个收件人,可以用分号分隔开。

----?@subject=subject;邮件的标题。发送邮件时的默认值为
"SQLServerMessage"。

----?@message=message;邮件的具体内容。

----?@attachments=attachments;邮件挂接的附加文件名。

----?@type=type;基于MAPI定义的消息类型,详细信息参见"
MicrosoftWindowsNTResourceKit"或"MicrosoftMailTechnicalReference"。

----?@query=query;一条SQL可执行语句,其执行结果以正文
或附件的方式随邮件发送。

----?@msg_id=msg_id;对于信箱中的每一封邮件均被分配了

----?@attachments=attachments;邮件挂接的附加文件名。

----?@type=type;基于MAPI定义的消息类型,详细信息参见"
MicrosoftWindowsNTResourceKit"或"MicrosoftMailTechnicalReference"。

----?@query=query;一条SQL可执行语句,其执行结果以正文
或附件的方式随邮件发送。

----?@msg_id=msg_id;对于信箱中的每一封邮件均被分配了
一个特殊的消息ID,用以相互区分。

----?@originator=@sender;读取特定邮件的发送者的邮件地
址。

--基于SQLMail的电子报刊自动处理系统

----这里利用SQLMail简单的实现了一个电子报刊自动处理系
统。每当新的一期电子报刊编辑完成,只需简单追加到发行
数据库publication中,SQLServer会自动定期执行my_publish存储过
程。在my_publish存储过程中,它检查发行数据库,当发现有新
的记录(即新的一期电子报刊)时,就通过逐个从订阅数据库
sub_info中取出订阅人的邮件地址,完成给每个订阅者发送电
子报刊(以邮件形式)的任务。

----电子报刊的订阅与取消也是通过邮件来实现。SQLServer
同样定期执行my_subscibe存储过程。my_subscibe存储过程检查特定
邮箱中的所有邮件,如果存在标题为"subscribe"的邮件,就取
出它的发件人等信息,在订阅数据库中添加一条记录;同样,
如果存在标题为"stopsubscribe"的邮件,就将它的相关记录从
订阅数据库中删除。系统中用到的数据库和存储过程如下所
示。sub_info(订阅者信息数据库)

字段名称类型允许空值含义

emailvarchar(20)NOTNULL订阅者电子邮件地址

sub_datedatetimeNOTNULL订阅时间

othertextNULL订阅者的其他信息

publication(电子报刊出版数据库)

字段名称类型允许空值含义

pub_classchar(10)NOTNULL电子报刊期号

pub_datedatetimeNULL出版日期

titletextNOTNULL本期电子报刊标题

contenttextNOTNULL电子报刊正文

endnotetextNULL附加于报刊的其他信息

flagsmallintNULL1,标志为未出版的新报刊

my_subscribe,用于处理订阅者信息的存储过程。

CREATEPROCEDUREmy_subscribe

AS

declare@msg_idvarchar(64)

declare@subjectvarchar(255)

declare@messagevarchar(255)

declare@originatorvarchar(255)

declare@datevarchar(255)

declare@statusint

declare@mapifailureint

select@mapifailure=0


while(1=1)

begin

/*查找邮件并获取消息ID*/

exec@status=master..

xp_findnextmsg@msg_id=@msg_idOUTPUT

if@status<>0

begin

select@mapifailure=1

break

end

if@msg_idisnullbreak

/*读取邮件的信息到变量中*/

exec@status=master..xp_readmail

@msg_id=@msg_id,

@originator=@originatorOUTPUT,

@subject=@subjectOUTPUT,

@message=@messageOUTPUT,

@date_received=@dateOUTPUT

if@status<>0

begin

select@mapifailure=1

break

end

/*根据邮件标题,在订阅数据库中添加或删除记录*/

execxp_deletemail@msg_id=@msg_id

if@subject='subscribe'

insertintosqlmailsample..

sub_infovalues(@originator,@date,@message)

else

if@subject='stopsubscribe'

deletefromsqlmailsample..sub_infowhereemail=@originator

end/*循环结束*/


if@mapifailure=1

/*错误处理代码*/

else

return(0)

GO


my_publish,用于分发电子报刊的存储过程。

CREATEPROCEDUREmy_publish

AS

declare@recipientvarchar(255)

declare@subjectvarchar(255)

declare@contentvarchar(255)

declare@endnotevarchar(255)

declare@statusint


select@subject=pub_classfrom

sqlmailsample..publicationwhereflag=1

/*如果有新的电子报刊,则开始分发*/

if(@subjectisnotnull)

begin

/*将数据库记录取出,经过适当处理后,存放到变量中*/

select@subject=convert(varchar

(255),title)+'('+pub_class+')',

@content=convert(varchar(255),content)

+convert(varchar(255),endnote)

fromsqlmailsample..publication

whereflag=1

updatesqlmailsample..publication

setflag=0whereflag=1


declarecurcursorforselect

emailfromsqlmailsample..sub_info

opencur

fetchcur

while(@@fetch_status=0)

begin

/*取收件人的电子邮件地址*/

fetchnextfromcurinto@recipient

/*发送电子邮件*/

if@@fetch_status=0

begin

exec@status=master..xp_sendmail

@recipients=@recipient,

@message=@content,

@subject=@subject

if@status<>0

/*错误处理代码*/

end

end/*向所有订阅人发送电子报刊的循环结束*/

closecur

deallocatecur

end

GO

----总之,SQLMail在数据库和电子邮件之间架起了一座沟通

end/*向所有订阅人发送电子报刊的循环结束*/

closecur

deallocatecur

end

GO

----总之,SQLMail在数据库和电子邮件之间架起了一座沟通
的桥梁,为某些特定用途的应用提供了简单高效的解决方案
,值得一试



蝈蝈俊 2000-12-13
  • 打赏
  • 举报
回复
文档中心有这篇文章,自己去查吧,懒得转载了
目录如下: 第1章 简介 1.1 谁是本书的读者 1.2 本书的内容 1.3 需求 1.4 SQL Server 2000的新特性 1.4.1 改进了对Web的支持 1.4.2 改进了伸缩能力和可靠性 1.4.3 改进了开发和管理环境 1.5 样本数据库 1.5.1 样本数据库安装 1.5.2 样本数据库的设计目的和设计思想 1.5.3 数据库图解 1.6 小结 第2章 关系数据库概念和SQL Server环境 2.1 数据库 2.1.1 关系数据库 2.1.2 数据库对象 2.1.3 什么是存储过程 2.2 SQL Server 2000的工具 2.2.1 Service Manage 2.2.2 Query Analyze 2.2.3 Enterprise Manage 2.2.4 DTS--导入和导出数据 2.2.5 osql和isql 2.2.6 SQL Server Profile 2.2.7 客户端网络实用工具 2.2.8 帮助子系统和SQL Server Books Online 2.3 存储过程的基本操作 2.3.1 通过Query Analyzer执行存储过程 2.3.2 通过Enterprise Manager管理存储过程 2.3.3 在Enterprise Manager编辑存储过程 2.3.4 在Query Analyzer编辑存储过程 2.3.5 语法错误 2.3.6 Create Stored Procedure Wizar 2.4 小结 2.5 练习 第3章 存储过程设计概念 3.1 存储过程的结构 3.1.1 组成 3.1.2 功能 3.1.3 语法 3.2 存储过程的类型 3.3 编译 3.3.1 编译和执行过程 3.3.2 执行规划的重用 3.3.3 重编译存储过程 3.3.4 存储存储过程 3.4 管理存储过程 3.4.1 列举存储过程 3.4.2 查看存储过程 3.4.3 重命名存储过程 3.4.4 删除存储过程 3.4.5 查看相关和有依赖关系的对象 3.5 存储过程在数据库应用开发的作用 3.5.1 增强数据完整性 3.5.2 复杂商业规则和约束的一致实现 3.5.3 模块化设计 3.5.4 可维护性 3.5.5 减少网络流量 3.5.6 更快的执行 3.5.7 增强了安全性 3.6 小结 3.7 练习 第4章 Transact-SQL编程基础 4.1 TSQL标识符 4.2 数据库对象限定词 4.3 数据类型 4.3.1 数据类型的分组 4.3.2 数据类型的同义词 4.3.3 用户定义的数据类型 4.4 变量 4.4.1 局部变量 4.4.2 全局变量 4.4.3 table(表)变量 4.5 流控制语句 4.5.1 注释 4.5.2 语句块-Begin...End 4.5.3 条件执行--If语句 4.5.4 循环--While语句 4.5.5 无条件执行--GoTo语句 4.5.6 调度执行--WaitFor语句 4.6 光标 4.6.1 Transact-SQL光标 4.6.2 与光标有关的语句和函数 4.6.3 使用光标带来的问题 4.6.4 合理使用光标 4.7 小结 4.8 练习 第5章 函数 5.1 使用函数 5.1.1 用于选择和赋值 5.1.2 用于过滤规则 5.1.3 用于表达式 5.1.4 作为检查和默认的约束 5.1.5 替代表 5.2 函数的类型 5.2.1 标量函数 5.2.2 集合函数 5.2.3 行集合函数 5.3 小结 5.4 练习 第6章 复合Transact-SQL 结构--批处理、脚本和事务 6.1 批处理 6.1.1 使用批处理 6.1.2 批处理与出错 6.1.3 DDL批处理 6.2 脚本 6.2.1 数据库脚本编程 6.3 事务概念 6.3.1 自动提交的事务 6.3.2 显式事务 6.3.3 隐式事务 6.3.4 事务处理的结构 6.3.5 嵌套的事务 6.3.6 已命名的事务 6.3.7 保存点 6.3.8 锁定 6.3.9 事务隔离级别和提示 6.3.10 分布式事务 6.3.11 典型的出错 6.4 小结 6.5 练习 第7章 调试和出错处理 7.1 调试 7.1.1 什么是“bug” 7.1.2 调试过程 7.1.3 调试工具和技术 7.1.4 典型的出错 7.2 出错处理 7.2.1 使用出错处理 7.2.2 为何要自寻烦恼 7.2.3 出错处理的策略 7.2.4 一种通用的出错处理方法 7.2.5 XACT_ABOR 7.2.6 Raiserro 7.3 小结 7.4 练习 第8章 确定专业的编程风格 8.1 源代码控制的概念 8.1.1 Microsoft Visual SourceSafe简介 8.1.2 管理Visual SourceSafe数据库 8.1.3 往Visual SourceSafe添加一个数据库 8.1.4 管理存储过程 8.1.5 Visual SourceSafe Explore 8.2 命名约定 8.2.1 为何要自寻烦恼 8.2.2 命名变量和对象 8.2.3 建议的命名约定 8.3 小结 第9章 特殊类型的过程 9.1 存储过程和类型 9.1.1 用户定义的存储过程 9.1.2 系统存储过程 9.1.3 扩展的存储过程 9.1.4 临时存储过程 9.1.5 全局临时存储过程 9.1.6 远程存储过程 9.2 用户定义的函数 9.2.1 用户定义函数的设计 9.2.2 表值用户定义函数 9.2.3 行内的表值用户定义函数 9.2.4 在Enterprise Manager管理用户定义的函数 9.3 触发器 9.3.1 物理设计 9.3.2 多记录上的修改操作 9.3.3 嵌套触发器和递归触发器 9.3.4 触发器的限制 9.3.5 SQL Server 2000的触发器 9.3.6 管理触发器 9.3.7 设计触发器的建议 9.3.8 触发器的事务管理 9.3.9 使用触发器 9.4 小结 9.5 练习 第10章 高级存储过程编程技术 10.1 动态地构造查询 10.1.1 执行一个串 10.1.2 通过窗体查询 10.1.3 使用sp_executesql存储过程 10.2 使用时间戳的乐观锁 10.2.1 时间戳 10.2.2 TSEQUAL函数 10.2.3 时间戳转换 10.3 全文搜索和索引 10.4 嵌套的存储过程 10.4.1 使用临时表来传递一个记录集给一个嵌套的存储过程 10.4.2 使用光标来传递一个记录集给一个嵌套的存储过程 10.5 如何处理一个存储过程的结果集 10.6 使用标识值 10.6.1 一个标准问题及解答 10.6.2 标识值与触发器 10.6.3 序列号表 10.6.4 在一个临时表保存标识值 10.7 GUI 10.8 使用MIN或MAX函数的While循环 10.9 属性管理 10.10 小结 10.11 练习 第11章 与SQL Server环境的交互 11.1 OLE Automation对象的执行 11.1.1 sp-OACreat 11.1.2 sp-OAMetho 11.1.3 sp-OASetPropert 11.1.4 sp_OAGetPropert 11.1.5 sp-OADestro 11.1.6 sp_OAGetErrorInf 11.1.7 数据类型转换 11.2 运行程序 11.3 运行Windows脚本文件 11.4 与NT Registry的交互 11.4.1 Registry子树 11.4.2 键和子键 11.5 Registry和SQL Server 11.5.1 xp_regrea 11.5.2 xp_regwrit 11.5.3 xp_regdeletevalu 11.6 作业 11.6.1 作业的管理 11.6.2 Job Scheduler的可选方法 11.6.3 用于维护作业的存储过程 11.6.4 操作员和报警 11.7 SQL Server和Web 11.7.1 Web Assistan 11.7.2 Web任务存储过程 11.7.3 sp_makewebtas 11.7.4 sp_runwebtas 11.7.5 sp_dropwebtas 11.7.6 Web页模板 11.8 串模板 11.8.1 xp_sprint 11.8.2 xp_sscan 11.9 邮件 11.9.1 用于E-Mail工作的扩展存储过程 11.9.2 xp_sendmai 11.9.3 xp_readmai 11.9.4 sp_processmai 11.10 数据库部署 11.10.1 在以前的环境 11.10.2 在新版本的环境 11.11 安全 11.11.1 安全结构 11.11.2 实现安全性 11.11.3 登录和用户名的同步 11.11.4 使用存储过程、用户定义函数和视图来管理应用程序安全 11.11.5 使用一个代理用户来管理应用程序安全 11.11.6 使用应用程序角色来管理应用程序安全 11.12 小结 11.13 练习 第12章 SQL Server 2000的XML支持 12.1 XML的变迁 12.2 XML简介 12.2.1 标记语言简介 12.2.2 构造标记语言的块 12.2.3 XM 12.2.4 XML文档质量 12.2.5 XML解析器和DOM 12.2.6 XML的链接和查询 12.2.7 转换XML 12.3 为何使用XML 12.3.1 用于单位之间的信息交换 12.3.2 信息发布 12.4 SQL Server的XML支持 12.4.1 Transact-SQL语言扩展 12.4.2 OPENXM 12.4.3 使用XML发布数据库信息 12.5 小结 12.6 练习 附录A SQL Server 2000的T-SQL和XML数据类型 附录B 练习答案
第1章 简介 1.1 谁是本书的读者 1.2 本书的内容 1.3 需求 1.4 SQL Server 2000的新特性 1.4.1 改进了对Web的支持 1.4.2 改进了伸缩能力和可靠性 1.4.3 改进了开发和管理环境 1.5 样本数据库 1.5.1 样本数据库安装 1.5.2 样本数据库的设计目的和设计思想 1.5.3 数据库图解 1.6 小结 第2章 关系数据库概念和SQL Server环境 2.1 数据库 2.1.1 关系数据库 2.1.2 数据库对象 2.1.3 什么是存储过程 2.2 SQL Server 2000的工具 2.2.1 Service Manage 2.2.2 Query Analyze 2.2.3 Enterprise Manage 2.2.4 DTS--导入和导出数据 2.2.5 osql和isql 2.2.6 SQL Server Profile 2.2.7 客户端网络实用工具 2.2.8 帮助子系统和SQL Server Books Online 2.3 存储过程的基本操作 2.3.1 通过Query Analyzer执行存储过程 2.3.2 通过Enterprise Manager管理存储过程 2.3.3 在Enterprise Manager编辑存储过程 2.3.4 在Query Analyzer编辑存储过程 2.3.5 语法错误 2.3.6 Create Stored Procedure Wizar 2.4 小结 2.5 练习 第3章 存储过程设计概念 3.1 存储过程的结构 3.1.1 组成 3.1.2 功能 3.1.3 语法 3.2 存储过程的类型 3.3 编译 3.3.1 编译和执行过程 3.3.2 执行规划的重用 3.3.3 重编译存储过程 3.3.4 存储存储过程 3.4 管理存储过程 3.4.1 列举存储过程 3.4.2 查看存储过程 3.4.3 重命名存储过程 3.4.4 删除存储过程 3.4.5 查看相关和有依赖关系的对象 3.5 存储过程在数据库应用开发的作用 3.5.1 增强数据完整性 3.5.2 复杂商业规则和约束的一致实现 3.5.3 模块化设计 3.5.4 可维护性 3.5.5 减少网络流量 3.5.6 更快的执行 3.5.7 增强了安全性 3.6 小结 3.7 练习 第4章 Transact-SQL编程基础 4.1 TSQL标识符 4.2 数据库对象限定词 4.3 数据类型 4.3.1 数据类型的分组 4.3.2 数据类型的同义词 4.3.3 用户定义的数据类型 4.4 变量 4.4.1 局部变量 4.4.2 全局变量 4.4.3 table(表)变量 4.5 流控制语句 4.5.1 注释 4.5.2 语句块-Begin...End 4.5.3 条件执行--If语句 4.5.4 循环--While语句 4.5.5 无条件执行--GoTo语句 4.5.6 调度执行--WaitFor语句 4.6 光标 4.6.1 Transact-SQL光标 4.6.2 与光标有关的语句和函数 4.6.3 使用光标带来的问题 4.6.4 合理使用光标 4.7 小结 4.8 练习 第5章 函数 5.1 使用函数 5.1.1 用于选择和赋值 5.1.2 用于过滤规则 5.1.3 用于表达式 5.1.4 作为检查和默认的约束 5.1.5 替代表 5.2 函数的类型 5.2.1 标量函数 5.2.2 集合函数 5.2.3 行集合函数 5.3 小结 5.4 练习 第6章 复合Transact-SQL 结构--批处理、脚本和事务 6.1 批处理 6.1.1 使用批处理 6.1.2 批处理与出错 6.1.3 DDL批处理 6.2 脚本 6.2.1 数据库脚本编程 6.3 事务概念 6.3.1 自动提交的事务 6.3.2 显式事务 6.3.3 隐式事务 6.3.4 事务处理的结构 6.3.5 嵌套的事务 6.3.6 已命名的事务 6.3.7 保存点 6.3.8 锁定 6.3.9 事务隔离级别和提示 6.3.10 分布式事务 6.3.11 典型的出错 6.4 小结 6.5 练习 第7章 调试和出错处理 7.1 调试 7.1.1 什么是“bug” 7.1.2 调试过程 7.1.3 调试工具和技术 7.1.4 典型的出错 7.2 出错处理 7.2.1 使用出错处理 7.2.2 为何要自寻烦恼 7.2.3 出错处理的策略 7.2.4 一种通用的出错处理方法 7.2.5 XACT_ABOR 7.2.6 Raiserro 7.3 小结 7.4 练习 第8章 确定专业的编程风格 8.1 源代码控制的概念 8.1.1 Microsoft Visual SourceSafe简介 8.1.2 管理Visual SourceSafe数据库 8.1.3 往Visual SourceSafe添加一个数据库 8.1.4 管理存储过程 8.1.5 Visual SourceSafe Explore 8.2 命名约定 8.2.1 为何要自寻烦恼 8.2.2 命名变量和对象 8.2.3 建议的命名约定 8.3 小结 第9章 特殊类型的过程 9.1 存储过程和类型 9.1.1 用户定义的存储过程 9.1.2 系统存储过程 9.1.3 扩展的存储过程 9.1.4 临时存储过程 9.1.5 全局临时存储过程 9.1.6 远程存储过程 9.2 用户定义的函数 9.2.1 用户定义函数的设计 9.2.2 表值用户定义函数 9.2.3 行内的表值用户定义函数 9.2.4 在Enterprise Manager管理用户定义的函数 9.3 触发器 9.3.1 物理设计 9.3.2 多记录上的修改操作 9.3.3 嵌套触发器和递归触发器 9.3.4 触发器的限制 9.3.5 SQL Server 2000的触发器 9.3.6 管理触发器 9.3.7 设计触发器的建议 9.3.8 触发器的事务管理 9.3.9 使用触发器 9.4 小结 9.5 练习 第10章 高级存储过程编程技术 10.1 动态地构造查询 10.1.1 执行一个串 10.1.2 通过窗体查询 10.1.3 使用sp_executesql存储过程 10.2 使用时间戳的乐观锁 10.2.1 时间戳 10.2.2 TSEQUAL函数 10.2.3 时间戳转换 10.3 全文搜索和索引 10.4 嵌套的存储过程 10.4.1 使用临时表来传递一个记录集给一个嵌套的存储过程 10.4.2 使用光标来传递一个记录集给一个嵌套的存储过程 10.5 如何处理一个存储过程的结果集 10.6 使用标识值 10.6.1 一个标准问题及解答 10.6.2 标识值与触发器 10.6.3 序列号表 10.6.4 在一个临时表保存标识值 10.7 GUI 10.8 使用MIN或MAX函数的While循环 10.9 属性管理 10.10 小结 10.11 练习 第11章 与SQL Server环境的交互 11.1 OLE Automation对象的执行 11.1.1 sp-OACreat 11.1.2 sp-OAMetho 11.1.3 sp-OASetPropert 11.1.4 sp_OAGetPropert 11.1.5 sp-OADestro 11.1.6 sp_OAGetErrorInf 11.1.7 数据类型转换 11.2 运行程序 11.3 运行Windows脚本文件 11.4 与NT Registry的交互 11.4.1 Registry子树 11.4.2 键和子键 11.5 Registry和SQL Server 11.5.1 xp_regrea 11.5.2 xp_regwrit 11.5.3 xp_regdeletevalu 11.6 作业 11.6.1 作业的管理 11.6.2 Job Scheduler的可选方法 11.6.3 用于维护作业的存储过程 11.6.4 操作员和报警 11.7 SQL Server和Web 11.7.1 Web Assistan 11.7.2 Web任务存储过程 11.7.3 sp_makewebtas 11.7.4 sp_runwebtas 11.7.5 sp_dropwebtas 11.7.6 Web页模板 11.8 串模板 11.8.1 xp_sprint 11.8.2 xp_sscan 11.9 邮件 11.9.1 用于E-Mail工作的扩展存储过程 11.9.2 xp_sendmai 11.9.3 xp_readmai 11.9.4 sp_processmai 11.10 数据库部署 11.10.1 在以前的环境 11.10.2 在新版本的环境 11.11 安全 11.11.1 安全结构 11.11.2 实现安全性 11.11.3 登录和用户名的同步 11.11.4 使用存储过程、用户定义函数和视图来管理应用程序安全 11.11.5 使用一个代理用户来管理应用程序安全 11.11.6 使用应用程序角色来管理应用程序安全 11.12 小结 11.13 练习 第12章 SQL Server 2000的XML支持 12.1 XML的变迁 12.2 XML简介 12.2.1 标记语言简介 12.2.2 构造标记语言的块 12.2.3 XM 12.2.4 XML文档质量 12.2.5 XML解析器和DOM 12.2.6 XML的链接和查询 12.2.7 转换XML 12.3 为何使用XML 12.3.1 用于单位之间的信息交换 12.3.2 信息发布 12.4 SQL Server的XML支持 12.4.1 Transact-SQL语言扩展 12.4.2 OPENXM 12.4.3 使用XML发布数据库信息 12.5 小结 12.6 练习 附录A SQL Server 2000的T-SQL和XML数据类型 附录B 练习答案

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧