SQL Server 数据库开发中的十大问题

2009-7-6    来源:CSDN   作者:无澍    我要评论
   | |

导读:在SQL Server中进行开发会让你身处险地,并且寻找快速解决方案。我们编辑了前十名关于SQL Server开发的常见问题。

关键词:SQL Server 2005 T-SQL

正在加载数据...

  在SQL Server中进行开发会让你身处险地,并且寻找快速解决方案。我们编辑了前十名关于SQL Server开发的常见问题。对常见的针对表和字段的名字约束进行探究。学习如何解决并发问题,并且在不了解T-SQL的情况下编写存储过程。查看这些解决方案的快速参考,并且了解更多内容。

  在SQL Server开发问题中你可能会问到的十个问题:

  1、什么是常见的对表和字段的名字约束?

  2、有没有可能在不了解T-SQL的情况下编写存储过程

  3、T-SQL中如何比较CLR 存储过程和函数的性能?

  4、我如何在一个存储过程中使用另一个存储过程产生的结果?

  5、我如何解决SQL Server 2005的并发问题?

  6、在SQL Server 2005中用什么工具替代了查询分析器?

  7、你能提供一些有关SQL 和T-SQL的详细信息吗?

  8、SQL Server 2005 有没有新的索引类型?

  9、我如何创建一个脚本在表中进行选择?

  10、我如何列出那些没有记录的数据库表?

  对于表和字段的常见名字约束

  专家回答:

  SQL Server 2000下的表和字段名称有1到128字节的限制,并且遵循用于标识的规则。第一个字母必须是如下的一种:

  Unicode Standard 2.0中规定的字母。

  Unicode对字母的定义包括:拉丁字母,从A到Z,除了来自其他语言的字母之外。

  下划线(_),at符号(@),或者数字符号(#)

  在SQL Server中以这些符号作为标识符的开始具有特殊的含义。一个以at符号(@)开头的标识符表示一个本地的变量或者参数。一个以数字符号(#)开头的标识符代表一个临时表或者过程。一个以两个数字符号(##)开头的标识符标识的是一个全局临时对象。一些Transact-SQL函数的名字以两个at符号(@@)开头。为了避免与这些函数混淆,推荐你不要使用两个at符号(@@)开头的标识符。接下来的字母可以是以下的任意几种:

  Unicode Standard 2.0定义的字母

  来自基础拉丁文或者其他语音的十进制数字

  at符号(@),美元符号($),数字符号(#),或者下划线

  标识符绝对不能是Transact-SQL的保留字。SQL Server保留了一些大写和小写的保留字。内建的空间或者特殊的字母都不允许出现,尽管你可以在好的老版本的Northwind中看到它们包含了内建的空间。你必须通过把它们括在括号中才可以访问。

  不具有任何T-SQL知识的情况下编写SQL Server2005存储过程吗?

  作为过去几年里面微软试图用SQL Server 2005的.net集成来称霸市场的野心的结果,许多程序员都认为创建SQL Server存储过程不再必需T-SQL了。不幸的是(或者并非如此,这根据你的观点),这并不全是事实。在技术上是可以在不了解T-SQL的情况下创建存储过程的,但是没有T-SQL的话则无法访问任何的数据。

  在CLR存储过程内部进行数据访问,是通过使用标准的ADO.NET类来完成的。开发人员会在应用程序层发现很多同样的没有用处的数据访问代码,这些代码会很轻易地转移到SQLCLR例程中去。当中间层的这些ADO.NET类需要使用T-SQL来访问数据的时候,在 CLR主机提供的环境中就会使用同样的类。

  我要强调的是,从技术角度来说,不使用T-SQL来编写存储过程是可能的。那么有没有理由这么做呢?一种情况就是这是一个用来从普通文件或者网络服务中检索数据的CLR存储过程,并将数据格式设置为行集。这里可能就会用到不需要T-SQL的操作——但是这并不是对T -SQL存储过程能力的一个很好的比喻。

  CLR存储过程vs. T-SQL存储过程

  CLR存储过程和函数与T-SQL存储过程和函数相比,性能如何?

  专家回答:

  这里是用来比较T-SQL例程和CLR例程性能的一种常用的规则:用你的数据,在你的服务器上,测试两套配置,看看哪一个比较好。 就是说,许多人都运行过性能测试,一般的结果就是T-SQL在标准的CRUD(创建、读取、更新、删除)操作上表现要比好一点,而在复杂数学、字符串赋值和其他的超过数据访问的任务上,则是CLR的性能表现更好一点。 SQL Server 的专家Gustavo Larriera编辑了如下一些关于这个主题的有用链接:

  在 SQL Server 2005中使用CLR Integration。

  简单介绍在 SQL Server 2005中的 CLR Integration。

  在 SQL Server 2005中对CLR 和T-SQL做出选择。

  介绍 SQL Server 2005中的 CLR Integration。

  SQL Server 闲谈: SQL Server 2005 Beta 2 CLR问题与回答。

  数据库管理员的防御.NET。 ·用户自定义函数的性能比较。

  如何在一个存储过程中使用另一个存储过程的结果

  专家回答:

  只要存储过程只产生了一个单个的结果,要在另外一个存储过程中使用这个存储过程产生的输出,这个技术是非常直接的。这个技术就是使用一个临时表来装载存储过程的巨额iguo,然后通过INSERT EXEC语句来执行这个过程并保存结果。一旦结果保留在临时表中了,他们就可以像使用其它表数据一样来使用它了。 这里是我们可能会复用的一个过程例子:

  CREATE PROC usp_Demo_AllAuthors as

  select * from pubs..authors

  GO

原文出处:http://database.csdn.net/page/15853444-bdb2-4a71-a60e-b7d32a1f6378
 
 
 
 
 
 

SQL Server可用性

 
大家都希望把所有的数据库整合到一起,但是有些数据是不应该被整合的。本文就将介绍一些关于数据库整合的知识,希望能对您有所帮助。
 
在决定哪个可用性选项对客户有意义,考虑方法多么有效以及付出多大努力使它就绪是十分重要的。
 
类似于数据库镜像,日志传送增强了数据库的可用性并通过在SQL Server 2008另一个实例上维护备用数据库来增强对数据库的保护。
 
镜像数据库是主数据库的一个精确副本,在主数据库上的所有更改都会自动同步到镜像。数据库镜像通过减少停机时间和具体数据库上的数据丢失来支撑业务。
 
SQL Server 2008的故障转移集群通过企业版Windows Server操作系统上的无共享集群模式为SQL Server的整个实例提供服务器级冗余。

热门技术手册排行

 

在本次的技术手册中,我们为您提供了PL/SQL的基础知识以及专家指导,包括了PL/SQL中的数据类型简介、PL/SQL函数与触发器以及PL/SQL中的存储过程等,相信您无论是高手还是菜鸟都可以获得有帮助的信息。

 

本系列文章由三部分组成,为Oracle数据库管理员(DBA)面试成功的必备手册。本专题内容囊括从DBA最初的面试开始,从写“杀手简历”到求职信、到面试过程到Oracle认证再到上升到公司高层最后到你成为公司里的明星DBA。专家为你一一指点迷津,最终让你登上成功的宝座。

 

要成为一名DBA,你需要具备哪些素质?DBA的薪酬待遇如何?DBA的职业道路究竟可以走向何方?我们将在本次的技术手册中为您一一解答。

 

在本次技术手册中,我们将对SQL Server存储过程的调试进行详细的介绍,包括了基础的调试方法和在调试过程中出现的T-SQL性能问题和解决方法。

 

本技术专题主要围绕sql server设计这个话题展开,侧重介绍了sql server集簇索引的设计、如何创建sql server索引、如何优化索引、索引的能与不能、处理sql server 2000索引碎片技巧以及维护sql server索引以实现查询优化等等。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录