在 SQL Server 数据库开发中的十大问题
来源:asp之家 发布时间:2009-07-02 16:39:00
在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


猜你喜欢
- 依赖安装Python安装git安装Django1.去Python官网下载Python3.6并配置好环境变量 Python下载地址:https
- 1:获取对象的三种方法1)document.getElementById(id);通过对象的属性id来获取;2)element.getEle
- MicroPython是Python 3语言的精简高效实现,包括Python标准库的一小部分,经过优化可在微控制器和受限环境中运行。WiFi
- 除了实现新的种类的对象以外,类有时有用于扩展Python的内置类型的功能。主要有以下两种技术:通过嵌入扩展类型下例把一些集合函数变成方法,而
- 画外接矩形框,可以画成一个最大的,也可以分别画。# -*- coding: utf-8 -*-import cv2image = cv2.i
- 如下所示:def signal_xHz(A, fi, time_s, sample):return A * np.sin(np.linspa
- 本文实例为大家分享了python使用itchat实现手机控制电脑的具体代码,供大家参考,具体内容如下1.准备材料首先电脑上需要安装了pyth
- 子查询可以完成 SQL 查询中比较复杂的情况,本章主要介绍一些子查询的简单用法。一、简单子查询1、简单子查询子查询是 SELECT 语句内的
- Python输出整数的方法:先使用str()函数将数字转换成字符串赋值给变量i,再用“if i.count('.') ==
- 由于日期存在不同位数的月份或天数,出现参差不齐,既不美观也在日期比较时不好操作。如使用本涵数就会排列整齐:'================
- 如果你经常与Excel或Word打交道,那么从两份表格/文档中找到不一样的元素是一件让人很头疼的工作,当然网上有很多方法、第三方软件教你如何
- 一、Python短信发送界面最后的效果二、准备:注册腾讯云账号并配置短信功能(1)注册腾讯云账号登录腾讯云网址(2)获取AppID、AppK
- 在使用ValuesQuerySet存放查询结果时,有时需要转为json,但并不能直接使用json.dumps()直接转,而是需要经过下面一个
- 养成良好的编码习惯,一个合格的程序员需要掌握一些编写单元测试的能力。单元测试也可以整体上提升我们的代码质量,这里介绍下 VUE 组件的单元测
- 关于保存h5模型、权重网上的示例非常多,也非常简单。主要有以下两个函数:1、keras.models.load_model() 读取网络、权
- 在已经发表的系列文章中我们已经讨论了两个ASP对象:Application对象和Session对象,因此能够访问Application对象和
- 一、通过结构(struct) 实现 接口(interface)1、在了解iris框架的时候,经常看到有这样去写的使用一个空结构体作为 * ,
- 在实际的工作中会经常会用到to_char()、to_date()函数来对时间、日期进行处理。1、to_char()函数的用法1.1、将时间日
- 我们知道现实中的数据通常是杂乱无章的,需要大量的预处理才能使用。Pandas 是应用最广泛的数据分析和处理库之一,它提供了多种对原始数据进行
- 一、分析网页网站的页面是 JavaScript 渲染而成的,我们所看到的内容都是网页加载后又执行了JavaScript代码之后才呈现出来的,