❶ sql SERVER 2000 端口与windows防火墙问题
请按照下列步骤操作:
1,启动记事本。复制并将下面的代码粘贴到记事本中:
netsh
advfirewall
firewall
add
rule
name="open
port
80"
dir=in
action=allow
protocol=tcp
localport=80
@echo
=========
sql
server
ports
===================
@echo
enabling
sqlserver
default
instance
port
1433
netsh
advfirewall
firewall
add
rule
name="sql
server"
dir=in
action=allow
protocol=tcp
localport=1433
@echo
enabling
dedicated
admin
connection
port
1434
netsh
advfirewall
firewall
add
rule
name="sql
admin
connection"
dir=in
action=allow
protocol=tcp
localport=1434
@echo
enabling
conventional
sql
server
service
broker
port
4022
netsh
advfirewall
firewall
add
rule
name="sql
service
broker"
dir=in
action=allow
protocol=tcp
localport=4022
@echo
enabling
transact
sql/rpc
port
135
netsh
advfirewall
firewall
add
rule
name="sql
debugger/rpc"
dir=in
action=allow
protocol=tcp
localport=135
@echo
=========
analysis
services
ports
==============
@echo
enabling
ssas
default
instance
port
2383
netsh
advfirewall
firewall
add
rule
name="analysis
services"
dir=in
action=allow
protocol=tcp
localport=2383
@echo
enabling
sql
server
browser
service
port
2382
netsh
advfirewall
firewall
add
rule
name="sql
browser"
dir=in
action=allow
protocol=tcp
localport=2382
@echo
=========
misc
applications
==============
@echo
enabling
http
port
80
netsh
advfirewall
firewall
add
rule
name="http"
dir=in
action=allow
protocol=tcp
localport=80
@echo
enabling
ssl
port
443
netsh
advfirewall
firewall
add
rule
name="ssl"
dir=in
action=allow
protocol=tcp
localport=443
@echo
enabling
port
for
sql
server
browser
service's
'browse'
button
netsh
advfirewall
firewall
add
rule
name="sql
browser"
dir=in
action=allow
protocol=udp
localport=1434
@echo
allowing
multicast
broadcast
response
on
udp
(browser
service
enumerations
ok)
netsh
firewall
set
multicastbroadcastresponse
enable
2,将文件另存为.txt
文件,通过使用以下名称:
opensqlserverport.txt
3,将
opensqlserverport.txt
文件重命名为以下:
opensqlserverport.bat
4,在运行
opensqlserverport.bat
脚本之前,必须将该脚本复制到了防火墙的计算机,然后在该计算机上运行该脚本。若要运行该脚本,请执行以下步骤:
1.
单击开始,单击运行,键入cmd,然后单击确定.2.
在命令提示符下,使用cd命令移动到您将
opensqlserverport.bat
文件保存在其中的文件夹。3.
若要运行
opensqlserverport.bat
脚本,请在命令提示符下键入opensqlserverport.bat
,然后按
enter
键即可。
❷ 怎么获取brokerservice
ServiceBroker为SQLServer提供消息队列,保证消息只被处理一次且按顺序处理。
如要需要开启ServiceBroker服务,请用sql server management studio连接到远程数据库,然后执行以下sql语句:
ALTERDATABASE数据库名称SETENABLE_BROKER即可激活使用
❸ C# 定时查询SQLServer数据库,并且将查询到的数据循环发送。请给个代码案例谢谢~ 网站的引用也可以。
Anllen,这样做是不科学的,如果是定时发送你可以考虑使用sql server中的计划,他可以定义执行某些任务,同时在sql server 2005以后还加入机器空闲时执行等等,而且还是可在失败时重试(重试次数自己设置),还可以对部分成功时进行记录等等。
如果是要求立即执行或是其他不能指执行条件时,可以考虑sql server 2005之后的server broker,这种机制较为安全。同时因为使用queue的原因,使消息只到达一次而不会重复,解决实际工作中的数据库与程序间的异步传输问题。
既然有这么多好的方案为什么还考虑重复地循环地查询数据库呢——你的数据库效率被拉的很慢的,别忘记了还是许多锁机制,会导致SQL server不再及时响应外部请求的!
❹ 急需SQL server 2005的介绍
前言
SQL Server 2000从上市到现在已经整整五个年头。现在望眼欲穿的SQL Server 2005 终于发布了。五年磨一剑,SQLServer 2005 将是微软具有里程碑性质的企业级数据库产品。本文从用户关心的技术要点出发比较和讨论SQL Server 2005 相对它的前版本SQL Server 2000所做的重大改进或新增功能,介绍了SQL Server 2005 中最值得你为之升级的10 个理由。无论你是想了解或学习SQL Server 2005,还是正在评估或考虑升级到SQL Server 2005,本文都将对您有很好的参考作用。
升级理由一:数据分区
只有到了2005 版本SQL Server才拥有了真正的表和索引数据分区技术。这个技术一下子使SQL Server数据库从“青壮年”成长为成熟的企业级数据库产品,是一个里程碑性质的标志。数据分区技术极大加强了表的可伸缩性和可管理性,使得 SQLServer 处理海量数据的能力有了质的飞跃,是我认为最值得升级的一个理由。
数据库随着硬件和业务的发展变得越来越大。五年前大多数数据库还不过是十几个GB大小,很少超过TB级别的。现在几百个GB大小的数据库系统随处可见。如果没有数据分区技术而想对大数据库进行高效管理是很困难的。SQL Server 2005以前版本的一个问题是随着时间的推移数据库越来越大,备份需要的空间越来越多,如何处理数据库中的历史数据是很棘手的事情。有些客户可能会使用 DELETE语句定期定量删除大表中的历史记录,如在每个周末备份数据库后删除一个星期以前的所有数据。但是如果表有上千万行十几个GB 大小,那么使用DELETE语句删除数据库中上万行或高达20%数据的话,其性能很差。如果是在7 × 24小时运行的联机系统做这样的数据维护操作那么还会引起比较严重的阻塞问题。另外有些客户针对这个问题直接在方案设计上下功夫,比如按照年份月份星期设计表,然后定期把一些过时的历史数据表(注意是“表”)备份并DROP掉,使得数据库大小以及系统性能都能保持相对稳定。但是这种方法有一个弊端,即应用程序必须做相应的配合根据不同的时间访问对应的表,增加了数据库管理以及数据库访问逻辑的复杂性。
大表还容易带来性能问题。你也许会想到SQL Server 2000中的本地分区视图或分布式分区视图技术。是的,SQL Server2000 中的确已经有分区视图的概念,从SQL Server 7.0开始就有了。可惜分区视图的一个令人讨厌的地方是其管理、设计和开发比较困难,特别是分布式分区视图。如如何更新分布式视图就是个难题。所以尽管一个设计良好的分区视图系统会有很不错的性能改善,却因为繁琐的配置,管理和开发使得其没有在实际中得到充分应用。
现在,SQL Server 2005 引入了真正的数据水平分区技术,上面讨论的数据库增长问题和性能问题就迎刃而解。这个进步绝对不是一小步。数据库的大小不再是个问题。你可以根据字段值的范围将表和索引划分为多个分区从而可以轻松管理一个几个TB大小的数据库系统。无论数据如何增长,你都可以使用分区技术使得数据库大小保持相对稳定。其中特别值得称赞的地方是SQL Server 2005 中分区的管理和使用非常简单。分区的删除,添加,拆分、合并和移动,以及分区的数据装载等管理都非常容易。你可以对单独的分区进行维护而不是整个表。如果你需要大量装载数据,那么你可以先把数据并行的装入到一个新分区当中,建立索引,然后把该分区合并到当前分区中来。这个动作需要的时间极短。如果你需要删除历史数据,假设你已经设计好了历史数据分区,那么你仅仅需要把该分区移除即可,几乎可以一瞬间完成。分区也使得大型表的并发访问性能得到改善,特别是有多个CPU的数据库系统。那些需要交叉访问大量数据的查询将从分区技术中获益不少。
升级理由二:可编程性
CLR 集成
SQL Server 2005的可编程性是值得升级的第二个重要理由。从来没有哪一个版本能像SQL Server 2005 这样带来这么多编程方面的变革。说老实话,在我知道的瞬间我是惊呆了。有些变化是革命性的。如CLR(Common Language Runtime,公共语言运行时)集成。就先说说CLR集成。CLR集成是指你可以使用任何一种.NET 语言编写SQL Server 2005 的存储过程,触发器,函数,自定义类型,甚至是自定义的聚合函数。估计不少数据库软件开发商会为这个功能欢呼雀跃。想想以前的扩展存储过程,编程非常不容易。代码中一不小心就会引起内存泄漏。而且由于扩展存储过程运行在SQL Server 的进程空间中,不好的代码容易引起访问违规(Access Violation)导致SQLServer 异常。
现在有了CLR 集成,你可以轻松利用.NET语言的优势如其面向对象的封装、继承和多态特性,编写出那些需要对数据进行复杂数值计算或逻辑的代码,如字符串处理,数据加密算法,XML数据操作等等。由于CLR代码宿于SQL Server进程,你可以非常容易访问数据库中的数据。有了CLR,你不再局限于T-SQL,你现在立即拥有了.NET 框架类库提供的各种各样的类和例程,以及.NET语言提供的一致的编程模型,如错误处理。展现在你面前的是一个可以无限扩展的编程空间。你现在需要的仅仅是考虑什么时候使用T-SQL 语言,什么时候使用CLR。我猜测那些SQL Server软件开发商几乎会立即升级到SQLServer 2005 享受数据库编程的便捷。
T-SQL 语言增强
SQL Server 2005 中的T-SQL语言有了非常大的改进。其中笔者最为称道的是现在可以使用和C++或C#类似的TRYCATCH结构对T-SQL 进行错误处理了,大大简化了T-SQL错误处理编程。SQL Server 2005以前的版本通过设置@@error变量表示最后的T-SQL 语句执行成功与否。为避免@@error变量被新执行的语句重置,你必须为每一条可能出错的TSQL语句后面立即检查或保存@@error变量的值,并使用相应的G O T O 语句进行跳转,使得代码变得复杂难读。现在SQLServer 2005 有了TRY-CATCH结构你只需要把相关的一组语句放在TRY块里面即可。如果TRY块里面任何语句发生错误,就会执行相应的CATCH 块。你甚至可以使用嵌套的TRYCATCH来实现复杂错误处理流程。估计很多T-SQL语言使用者可能就为了这个TRY-CATCH 结构而迫不及待地升级到SQL Server 2005。
除了传统的DML(INSERT/UPDATE/DELETE)触发器,SQL Server 2005 现在也可以对DDL 语言(CREATE、ALTER或DROP 开头的语句)创建触发器了。这对于那些需要对DDL语言执行管理任务如审核以及规范数据库操作的用户特别有用。以前很多客户问我如何跟踪或避免表的删除操作,现在终于有了答案。你可以简单建立一个针对DROP 语句的触发器然后在触发器里面ROLLBACK 事务就可以回滚DROP 动作了。
SQL Server 2005 T-SQL 中还有一个很酷的OUTPUT 子句。现在你不费吹灰之力就可以获得INSERT 、UPDATE 或DELETE语句所影响的每行的信息。对于在INSERT或UPDATE操作之后需要检索标识列或计算列的值的场合OUTPUT子句非常有用。如获得数据INSERT 后该行的Identity的值,产生一些唯一流水号,验证刚刚插入的数据等等。一个有趣的例子是Identity值的取得。在SQL Server 2000 中你可以在INSERT 语句后立即调用IDENT_CURRENT()或SCOPE_IDENTITY()函数来得到INSERT 语句的Identity。现在你仅仅需要在INSERT 语句中指定output子句就直接得到刚刚插入的Identity值,实在太简单了,不是吗?
SQL Server 2005 中T-SQL 语言新增或加强的功能还有很多。如SQL Server 2005 新增加了一类排名函数RANK/DENSE_RANK/NTILE/ROW_NUMBER,轻松解决了开发者要求返回数据行中提供行号等排序功能。新增的 P I V O T 和UNPIVOT运算符使得对结果集进行行和列的旋转变换十分简单。公用表表达式(CTE)解决了T-SQL语言的递归查询问题,而使用 OPENROWSET 语句现在可以直接从文件里面执行大容量操作了。我觉得每一个改进都是那么有针对性,以至于使我相信这些T-SQL增强必定是SQL Server开发小组真正聆听数据库开发者心声的结果。
升级理由三:安全
SQL Server 2005 的安全功能是我认为值得升级的第三个理由。SQL Server 2005 的安全达到了前所未有的强大水平,有着比以前版本更清晰的安全模型即主体,安全对象和权限。在SQLServer 2000 中是用服务器级权限、数据库角色和数据用户权限的混合方式管理权限。而SQL Server 2005 统一使用GRANT语句管理主体对安全对象的权限,简化了安全管理。其中我认为最大的改进是用户和架构(schema)分离。在SQL Server 2000中如果用户不是DBO 且拥有对象,那么移除该用户将是很麻烦的事情。你需要首先使用sp_changeobjectowner改变该用户拥有的对象所有权,然后把所有引用该对象的代码做相应的修改。而在SQL Server 2005 中就不需要这样麻烦了,因为现在用户不再拥有对象。拥有对象的是schema 而不是用户。数据库中的所有对象都属于某个schema。对象的完整名字是server.database.schema.object,符合SQL- 99 标准,而不是以前的server.database.user.object 方式。删除用户仅需要改变schema的owner就可以了。不需要修改任何已存在的数据库访问代码,真的很方便。用户和架构分离还有一个好处就是对象的权限管理变得简单。你可以把某些对象集中于某个架构里面,然后对该架构设置权限,那么架构里面的所有对象就自动继承了同样的权限。
如果你需要保护数据库中的敏感数据,那么SQL Server2005 中的数据加密功能绝对值得考虑。以前不止一次有客户问我如何加密数据库中的某些数据,是否可以使用一些内部不公开的函数如PWDENCRYPT加密数据。我的回答是使用Windows的EFS(加密文件系统)功能加密数据库文件或在应用程序层对数据加密后再存储。现在用户期盼已久的数据加密功能终于在 SQL Server 2005 中得到实现,那些有机密数据需要保护的用户值得高兴了。SQL Server 2005不是简单的提供一些加密函数,而是把市场上已经成熟的数据安全技术引进到数据库中,有一个清晰的加密层次结构。SQL Server 2005 支持证书(certificate),非对称密钥和对称密钥算法,一是防止敏感数据被泄漏,二是防止数据被篡改。对称密钥支持RC4,RC2, TripleDES 和AES算法,而非对称密钥使用RSA 算法。证书其实就是非对称密钥中公钥的容器。密钥管理是安全中比较弱的部分。SQL Server 2005 每一层都使用证书、非对称密钥和对称密钥的组合对它下面的一层进行加密,提高了密钥安全性。出于性能考虑,一般不用加密强度大的非对称密钥或证书直接加密数据,而是使用对称密钥加密数据获得较快的性能,然后使用证书或非对称密钥加密对称密钥。
升级理由四:快照隔离
你还在为系统出现的阻塞(blocking)或死锁(deadlock)现象苦恼吗?快试试SQL Server 2005 中的快照隔离吧。通过行版本(row versioning)控制技术,SQL Server 2005 除了原来支持的四种事务隔离级别(脏读、提交读、可重复读、可串行读)外新增了一个快照(SNAPSHOT)隔离级别,有可能使阻塞或死锁成为历史。 SQL Server在TEMPDB中存放不同版本的数据行,select 语句读取这些不同版本的行,读操作不阻塞写数据,写操作也不阻塞读操作,这样那些由于读/ 写争用导致的大量死锁的系统将从中获得无穷益处。如果你的系统复杂难优化,那么升级到SQL Server 2005 试试快照隔离级别,也许会有意想不到的效果。
SQL Server 2005中的快照隔离可细分为两种即READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION。建议大家多使用前者,因为已提交读隔离可用于大多数现有应用程序,而不需要进行任何更改,其占用的TEMPDB空间也少。可以预见如果使用快照隔离级别,那么需要特别关注TEMPDB的大小和性能。你也许需要把TEMPDB放在有足够空间的单独磁盘上以提高性能。
考虑到快照隔离在避免阻塞和死锁方面的作用,我把它作为升级的第四个理由。
升级理由五:数据库镜像
对于那些要求高可用性的用户来说,数据库镜像也许是考虑升级的唯一理由。SQL Server 2005的前版本在高可用性方面提供了故障转移群集(Failover Cluster)和Log shipping方案。群集方案的一个好处是在一台机器发生问题时它可以提供极快的故障转移能力,在备份服务器上联机数据库,应用程序只需重新连接即可。群集方案的一个缺点是数据库放在共享盘上,有单点失效这个缺点,一旦共享盘失败将导致整个系统崩溃。所以群集方案一般都要结合严紧的备份方案一起使用。而 logshipping系统有一个时间上的延迟,且如果日志备份很大,传送速度也是个问题。SQL Server 2005引入的数据库镜像可作为故障转移群集或Log shipping 的替代或补充方案来提高数据库的高可用性。镜像的主要优点是它比前两者更容易管理,没有群集的单点失效缺点,也没有log shipping 的时间延迟。镜像服务器可以放在很远的地方,提高了作为备份服务器的高可用性。
数据库镜像需要两台或三台服务器。主服务器通过传送事务日志中的每个事务到镜像服务器来进行数据同步。每当数据库commit一个事务,该事务就会被同步到镜像服务器。如果事务安全设置为FULL,传送操作将为同步操作。同步操作可以确保将提交的事务提交给两个服务器,但可能会增加事务提交的时间。如果事务安全设置为OFF,操作将为异步操作。事务会在不等待镜像服务器的情况下提交,这将不影响主服务器事务的提交时间,但不能确保镜像也提交了该事务,所以在出现故障那一刻有可能有部分日志丢失。对于需要严格同步数据的镜像系统可以采取同步模式。而仅仅希望有个备份服务器又不影响性能的情况下可以使用异步模式(高性能模式)。无论那种模式,一旦主服务器出现问题,你可以手动实现故障转移或配置系统实现自动故障转移。
升级理由六:商务智能BI 增强
SQL Server 2005 对已经有或打算开发基于SQL Server 的商务智能方案的用户吸引力极大。SQL Server 2005中有关商务智能方面的增强很多,是升级的很好理由。首先是传统的DTS(Data Transformation Services)被新的IS(Integration Services)代替。SQL Server 2000 中的DTS用来在不同服务器之间转移数据,但对于复杂重复的工作流DTS倍感吃力。IS重新改写了DTS的数据流引擎,引入提取、转换和加载(ETL)数据的新编程体系,将数据流与控制流分开,开发能力大大加强,包部署、管理和性能方面也比DTS上了一个数量级。笔者看来,DTS终于从原来的小打小闹成长为成熟的IS 数据集成服务体系。
分析服务(Analysis Services)在SQL Server 2005 中也有很多改进。原来没有profiler想跟踪分析服务里面的语句非常痛苦。现在2005 终于支持profiler了。Profiler对性能调优和排查错误将非常有用。分析服务2005 真正具备了实时分析能力,新增加了四种数据挖掘算法,也支持.NET语言进行开发(如存储过程等)。至于报表服务,2005 版本中添加了报表生成器和模型设计器这两个新工具,支持报表拖拉设计。2005 的报表改进如新的打印功能、多值参数等。设计过报表的人员会深深知道多值参数的妙处。
另外,无论是IS、报表服务等都可以在类似Visual Studio的环境中开发,任务完成不过鼠标拖拉之间,非常容易上手。
升级理由七:全文搜索增强
相对前版本SQL Server 2005中性能提升最多的部分当数全文检索。SQL Server 2000 中的全文本检索和SQL Server 7.0中的差别不大,处于能用的水平。在SQL Server 2000中使用全文检索一个最大的痛苦是建立全文索引的性能不好,需要的时间太长,特别是在表很大的情况下。一个几千万行数据的表也许需要数个小时到数天时间才能完成全文索引的建立。SQL Server 2005全文检索在开发的时候就集中于三点:性能,集成,和可扩展性。据开发小组人员的简单测试,原来在SQL Server 2000中建立全文索引需要14天的表,现在只需要几个小时!几乎有上百倍的性能提升,只能用“惊异”来形容。其相关的全文检索语句也有30%~50%甚至更高的性能提高。性能方面的提高得益于全新设计的全文检索引擎。其中关键的一点设计是全文检索引擎现在使用共享内存和SQL Server 进行数据大规模并发交互,而不是原来基于逐行的方式,使得性能上了好几个数量级。
除了性能,SQL Server 2005 中的全文索引的集成性也大大加强。在SQL Server 2000 中很难对全文检索进行备份。一旦有数据库恢复或移动,你得重新重建索引。对于几百个GB的数据库,重建索引几乎是不能接受的恶梦。现在终于可以和数据库一起备份和恢复全文索引了。你不再需要在恢复数据库后重建全文索引了!恶梦终于成为历史。除了可以备份外,你也可以方便的改变全文索引的磁盘位置。你甚至可以在一个热备机器上把全文索引建立好,然后 这个索引到生产服务器上使用。
升级理由八:可用性功能增强
索引联机操作。除了数据库镜像,SQL Server 2005 中可用性还有很多其他提高。索引现在可以使用ONLINE关键字进行在线建立或重建或删除了。它的技术要点是在内存里面动态生成索引的另一个副本从而不影响原来查询的进行。一旦索引副本完成操作即替代原来索引成为当前索引。我认为索引联机操作的意义是很大的,因为很多数据库系统都有定期调整或维护索引方面的需求。有了2005 你无需担心业务的正常运行而大胆的对索引进行维护或修改。
页校验和。SQL Server 2005中的数据库页引入校验和增强了数据的可靠性。除了原来SQL Server 2000 中已有的TORN_PAGE_DETECTION 外,SQL Server 2005 新增实现了页的检验和(CHECKSUM)。你使用ALTER DATABASE语句的SET PAGE_VERIFY子句即可指定。它的原理是向磁盘中写入8K数据页面时,SQL Server计算整个8K页面内容的校验和并将该值存储在页头中。再次从磁盘中读取页时,SQL Server动态计算读取到的页面内容的校验和,并与存储在页头中的校验和值进行比较。如果不相等则意味着页面有物理损坏,需要检查IO硬件。另外设置检验和的另一个好处是还可以在备份和还原操作过程中使用RESTORE VERIFYONLY语句验证每一数据页的完整性从而确认备份文件没有物理损坏。
在线还原。在数据库的某一部分未恢复前,用户无法对该部分进行访问,但可以访问所有其他数据。SQL Server 2000中如果数据库在还原或recovery当中,用户不能访问数据库。这样如果数据库很大需要rollback或rollforward的事务很多的话,recovery的时间会出奇的长。SQL Server 2005 的在线还原功能使得数据库在很短的时间内变得可用。
升级理由九:复制增强
SQL Server 2000 中的复制功能已经很好。我这里把复制作为升级的一个理由因为SQL Server 2005在原来的基础上又增添了不少的功能。如peer-to-peer对等复制,可以在参与者之间相互进行复制,这样你可以采用对等复制在复制参与者之间建立某种程度的负载平衡。合并复制现在支持通过HTTPS进行数据同步,可以方便建立基于INTERNET 的复制。发布表现在可以使用标准的T-SQL语句如Alter Table等进行结构修改然后被复制而不是仅仅局限于使用sp_repladdcolumn和sp_repldropcolumn存储过程。在SQL Server 2000 中,仅支持向其他数据库(如DB2或Oracle)发布数据,而在SQL Server 2005 中,可将Oracle 数据库直接复制到SQL Server。可以从备份中初始化事务性订阅而不是仅仅局限于从快照对复制进行初始化,等等……
升级理由十:异步处理能力
SQL Server 2005 通过引入全新的Service Broker 提供了革命性的异步处理能力。Service Broker提供了一个功能强大的异步编程模型。它为数据库应用程序增加了可靠、可扩展、分布式异步功能异步编程,允许程序仅仅在资源可用时才去执行占用大量资源的任务,以此来缩短响应时间,提高吞吐量。在我看来,Broker的最大好处一是异步执行能力,提高了可伸缩性,二是可靠执行,三是集成于数据库中,备份数据库就备份了broker 的消息队列。SQL Server 2005 中的查询通知就是基于Service Broker的应用。你可以使用查询通知功能来发送一个命令到SQL Server请求在查询结果发生变化时接收SQL Server的通知。这样就可以只有在程序以前检索的结果发生变化时,才需要重新查询数据库。一个可以预见的应用是在使用缓存的Web 站点中。Web站点首先发送语句到数据库服务器,获得数据,缓存到本地,然后只有在收到查询通知的时候才清理缓存,重新查询数据。这个机制避免了重复轮询 SQL Server,大大减轻了服务器的负载,也提高了Web 站点的伸缩性。
因为SQL Server 2005 的Service Broker带来了数据库编程异步处理能力的革命,我把它作为升级的第十个理由。
去网上找找吧,这类的介绍很好找的
❺ sqlserver broker 什么意思
SQL Server Service Broker 你可以理解为一种 数据库队列的 东西.
异步处理的.
例如我要执行一个耗时比较长的存储过程.
普通的执行方法, 是我 执行了, 然后我等着服务器处理完了, 才能继续干别的事情.
SQL Server Service Broker 则是以一种队列异步处理的机制来完成.
我需要执行一个很耗时的处理.
那么可能就是向某个 队列, 发送一个消息, 然后立即就返回了.
这个时候, 我可以做其他的查询处理.
等服务器执行完毕后, 再向我发一个消息, 告诉我 执行的结果.
❻ 如何通过sqlserver数据库发送邮件
Database Mail代替了SQL Mail,它使用一个简单邮件传输协议(SMTP)服务器,而不是SQL Mail所要求的MAPI账号来发送电子邮件。 这允许你的组织发送带附件和查询结果的电子邮件,附加查询结果,以及格式化HTML电子邮件。你还可以用它设定许多其它配置,而不需要你拥有一台Exchange服务器或配置任何类型的MAPI工作区。 使用Database Mail的好处除完全以SMTP为基础外,Database Mail还具有许多其它优点:
它在数据库引擎以外运行,因此对数据库引擎的压力最小。
它支持群集,完全支持群集环境。
它的用户资料(Profile)允许使用冗余SMTP服务器。(我将在本文后部分详细讨论这一点。)
它允许你以参数的形式向存储过程发送查询文本,存储过程将执行查询并在电子邮件中发送结果。
消息通过一个Service Broker队列异步传送,因此你在发送电子邮件时不必等待回应。 它为电子邮件发送提供多重安全保护,如一个控制附件扩展名的过滤器和一个附件大小管理器。 建立和使用Database Mail在建立一个Database Mail解决方案前,你需要进行一些规划工作。首先,你必须具有一台有效的SMTP服务器来传送电子邮件。如果你没有SMTP服务器,请参阅微软知识库文章308161了解建立SMTP服务器的相关信息。如果你无法确定组织是否拥有SMTP服务器,询问你的网络管理员获得机器名称或服务器的IP地址。你的网络管理员可能需要对服务器进行配置,以便SQL Server能够发送电子邮件。 在Database Mail中,账户(Account)保存数据库引擎用来发送电子邮件消息的信息。一个账户只为一台电子邮件服务器保存信息,如账户名、电子邮件地址、回复电子邮件地址、服务器名称或IP地址,以及一些可选的安全设置。 要发送一封Database Mail电子邮件,必须使用一个用户资料(Profile)。用户资料为一个或几个账户设立。这种用户资料-账户设置非常有用。它允许你将几个账户和一个用户资料联系起来,这意味着你可以将几台电子邮件服务器和一个用户资料联系起来。 因此,当你试图发送一封电子邮件时,系统会尝试用户资料中的每个账户,直到消息被成功发送出去。如果一台或几台SMTP服务器出现故障,这种设置就十分有用。它还允许你开发发送电子邮件的应用程序代码,而不必担心针对不同的环境修改Profile名称。你可以在开发和生产环境中使用相同的Profile名称,唯一的差别在于用户资料中包含的账户有所不同。 该是时候了解如何建立一个Database Mail账户了。在我们的例子中,我假设你正坐在一台你具有系统管理员访问权限的开发机器前。如果你没有系统管理员权限,你需要成为msdb数据库DatabaseMailUserRole的一员。 下面的脚本建立一些我在整个实例中都要用到的变量。
❼ sqlserver 在对象上的权限设置有哪些动作分别是什么意义
以下粘贴自SQL Server 的帮助信息,文字太多不能贴全,你自己可在帮助中查到更多信息。
-----------------------------
每个 SQL Server 安全对象都有可以授予主体的关联权限。本主题提供了下列信息:
权限命名约定
与特定的安全对象相关的权限
SQL Server 权限
权限检查算法
示例
权限命名约定
下面介绍命名权限时遵循的一般约定:
CONTROL
为被授权者授予类似所有权的功能。被授权者实际上对安全对象具有所定义的所有权限。也可以为已被授予 CONTROL
权限的主体授予对安全对象的权限。因为 SQL Server 安全模型是分层的,所以 CONTROL 权限在特定范围内隐含着对该范围内的所有安全对象的
CONTROL 权限。例如,对数据库的 CONTROL
权限隐含着对数据库的所有权限、对数据库中所有组件的所有权限、对数据库中所有架构的所有权限以及对数据库的所有架构中的所有对象的权限。
ALTER
授予更改特定安全对象的属性(所有权除外)的权限。当授予对某个范围的 ALTER
权限时,也授予更改、创建或删除该范围内包含的任何安全对象的权限。例如,对架构的 ALTER 权限包括在该架构中创建、更改和删除对象的权限。
ALTER ANY
<服务器安全对象>,其中的服务器安全对象可以是任何服务器安全对象。
授予创建、更改或删除服务器安全对象的各个实例的权限。例如,ALTER
ANY LOGIN 将授予创建、更改或删除实例中的任何登录名的权限。
ALTER ANY
<数据库安全对象>,其中的数据库安全对象可以是数据库级别的任何安全对象。
授予创建、更改或删除数据库安全对象的各个实例的权限。例如,ALTER
ANY SCHEMA 将授予创建、更改或删除数据库中的任何架构的权限。
TAKE OWNERSHIP
允许被授权者获取所授予的安全对象的所有权。
IMPERSONATE <登录名>
允许被授权者模拟该登录名。
IMPERSONATE <用户>
允许被授权者模拟该用户。
CREATE <服务器安全对象>
授予被授权者创建服务器安全对象的权限。
CREATE <数据库安全对象>
授予被授权者创建数据库安全对象的权限。
CREATE
<包含在架构中的安全对象>
授予创建包含在架构中的安全对象的权限。但是,若要在特定架构中创建安全对象,必须对该架构具有
ALTER 权限。
VIEW DEFINITION
允许被授权者访问元数据。
REFERENCES
表的 REFERENCES 权限是创建引用该表的外键约束时所必需的。
对象的 REFERENCES
权限是使用引用该对象的 WITH SCHEMABINDING 子句创建 FUNCTION 或 VIEW
时所必需的。
适用于特定安全对象的权限
下表列出了主要的权限类别以及可应用这些权限的安全对象的种类。
权限
适用于
SELECT
同义词
表和列
表值函数 [Transact-SQL 和公共语言运行时 (CLR)] 和列
视图和列
VIEW CHANGE TRACKING
表
架构
UPDATE
同义词
表和列
视图和列
REFERENCES
标量函数和聚合函数(Transact-SQL 和 CLR)
Service Broker 队列
表和列
表值函数(Transact-SQL 和 CLR)和列
视图和列
INSERT
同义词
表和列
视图和列
DELETE
同义词
表和列
视图和列
EXECUTE
过程(Transact-SQL 和 CLR)
标量函数和聚合函数(Transact-SQL 和 CLR)
同义词
CLR 类型
RECEIVE
Service Broker 队列
VIEW DEFINITION
过程(Transact-SQL 和 CLR)
Service Broker 队列
标量函数和聚合函数(Transact-SQL 和 CLR)
同义词
表
表值函数(Transact-SQL 和 CLR)
视图
ALTER
过程(Transact-SQL 和 CLR)
标量函数和聚合函数(Transact-SQL 和 CLR)
Service Broker 队列
表
表值函数(Transact-SQL 和 CLR)
视图
TAKE OWNERSHIP
过程(Transact-SQL 和 CLR)
标量函数和聚合函数(Transact-SQL 和 CLR)
同义词
表
表值函数(Transact-SQL 和 CLR)
视图
CONTROL
过程(Transact-SQL 和 CLR)
标量函数和聚合函数(Transact-SQL 和 CLR)
Service Broker 队列
同义词
表
表值函数(Transact-SQL 和 CLR)
视图
❽ sql server怎样用代码建立数据库,详细代码
创建数据库和表的操作有两种方法:
一、可视化操作
1.创建数据库
选中数据库右击,在出现的对话框中选择新建数据库,然后新出现的对话框中填写数据库的名称
2.创建数据表
选中数据库下的表右击,在出现的对话框最上方有新建表选项,新出现的对话框中有列名、数据类型、允许Null值三列,这里可以添加表的的列,添加好列后保存Ctrl+S或者点击上方的保存,填写表名称确定就创建好了。
二、使用SQL语句创建
1.创建数据库
createdatabasestuDB--stuDB是数据库的名称
onprimary--默认就属于primary文件组,可省略
(
/*--数据文件的具体描述--*/
name='stuDB_data',--主数据文件的逻辑名称
filename='D:stuDB_data.mdf',--主数据文件的物理路径和名称
size=5mb,--主数据文件的初始大小
maxsize=100mb,--主数据文件增长的最大值
filegrowth=15%--主数据文件的增长率
)
logon
(
/*--日志文件的具体描述,各参数含义同上--*/
name='stuDB_log',
filename='D:stuDB_log.ldf',
size=2mb,
filegrowth=1mb
)
-----2.创建数据表
useStuDB--使用某个数据库(在某个数据库下建表)
go
ifexists(select*fromsysobjectswherename='stuMarks')--查询数据库是否已存在此表
droptablestuMarks--如果存在该表则删除,不存在不执行此句
createtablestuMarks--stuMarks是表的名称
(
ExamNointidentity(1,1)primarykey,--列名数据类型约束
stuNochar(6)notnull,--列名数据类型是否允许插入Null值
writtenExamintnotnull,
LabExamintnotnull
)
go
--其中,列属性"identity(起始值,递增量)"表示"ExamNo"列为自动编号,也称为标识列altertable表名
addconstraint约束名约束类型具体的约束说明
altertable表名
dropconstraint约束名
❾ 如何激活SQL Server Service Broker服务
ServiceBroker为SQLServer提供消息队列,保证消息只被处理一次且按顺序处理。 如要需要开启ServiceBroker服务,请用sql server management studio连接到远程数据库,然后执行以下sql语句: ALTERDATABASE数据库名称SETENABLE_BROKER即可激活使用
❿ sqlserver数据库对象有哪些
SQL Server数据库对象
SQL Server的数据库一共有11种对象,
包括关系图、
表、视图、存储过程、
用户、角色、规则、默认、用户定义的数据类型、
用户定义的函数、
全文目录。
关于这11种数据库对象,
可以在使用数据库的过程中逐步加深了解。