最新文章
|
知识管理交流
→『 技术文档交流 』
本版文数:7416 今日文数:2363
|
下边两种方法是从网上搜集的,个人觉得都还不错,大家可以看下选择其中一种方法或是综合两种方法的优点总结出自己的命名方法。
方法一
A、“表”单数形式命名
语法:[proc]_[MainTableName]_([FieldName]_)[Action]
--创建/删除/更新/等操作采用单数表形式命名...
|
在企业管理器中我们无法对数据库进行重命名,下边介绍两种方法来实现对SQLServer数据库重命名。
方法一:使用系统存储过程sp_renamedb
在使用sp_renamedb对数据库进行重命名前必须确保所有使用数据库的连接都已关闭,打开所有任务→分离数据库,点击清除按钮即可关闭数据库所有连接,然后在查询分...
|
触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。创建语法:
引用内容CreateTRIGGERtrigger_nameON
AS
sql_statement
下边主要说下INSTEADOF和AFTER两个参数的区别:
·执行时间:INSTEADOF在SQL语句执行...
|
有时,我们想知道登录到数据库的用户做了什么,于是,记录用户执行的SQL语句就非常有必要,这将是重要的参考依据。我们先建一张日志表(DBLoger)用于保存用户执行的SQL语句:
程序代码CreateTABLEDBLoger(
LoginNamenvarchar(50),
HostNamenvarchar(50...
|
WindowsServer自带的互联网信息服务器(InternetInformationServer,IIS)是架设网站服务器的常用工具,它是一个既简单而又麻烦的东西,新手都可以使用IIS架设一个像模像样的Web站点来,但配置、优化IIS的性能,使得网站访问性能达到优选状态却不是一件简单的事情,这里我就介绍一下如何一步...
|
1).判断用户表是否存在
程序代码ifexists(selecttop1*fromsysobjectswhereid=object_id(N[所有者.]表名)andtype=U)
2).判断临时表是否存在
程序代码ifobject_id(tempdb..##temp)isnotnull
3).判断存储过...
|
上边是mssql2000导入数据向导的选择数据源界面,若access设置有密码,很多人在这边都会为难:用户名是什么?在给access设置密码时并没有提示用户名相关信息,便开始百度怎么获取用户名,最终都以失败告终。正确的做法是:界面中用户名、密码留空,打开高级设置界面,在JetOLEDB:DatabasePass...
|
可以在数据库关系图中的表间创建关系以显示某个表中的列如何链接到另一表中的列。
在关系数据库中,关系能防止冗余的数据。例如,如果正在设计一个数据库来跟踪有关书的信息,而每本书的信息(如书名、出版日期和出版商)都保存在一个名为titles的表中。同时还有一些想保存的有关出版商的信息,例如出版商的电话号码、地址和邮政编...
|
上图是一个WEB站点访问日志表,记录了访问对象的相关信息。现在要求增加一个站点每天的IP、PV统计功能,数据量小时直接对Web_AccessLogTB表中的数据进行统计即可,若数据量比较大,这样做就不合适了。解决方法是进行预统计:在用户查看统计之前就已经预先统计好了,用户查看时只是显示下结果而已。预统计的方式又可分成两...
|
用户定义数据类型提供了一个便利的方法来确保数据类型的一致性,即在值域可能相同的列上使用用户定义数据类型替代系统提供的数据类型。例如,数据库可能将在很多个表中存储各种各样的电话号码。尽管号码不是单一的,但存在确定的方法来存储电话号码,这在数据库一致性方面是重要的。可以创建用户定义数据类型,在表列中一致地使用它,确保电话号...
|
SQLServer2000的聚合函数大都会忽略空值,所以在含有空值的列上使用聚合函数时需格外谨慎。例如有一个Student表如下:
我们用下边SQL语句统计下人数、平均年龄、最大年龄、最小年龄:
程序代码select
count(*)ascount1,
count(age)ascount2,
...
|
SQLServer2000关系图字面上的理解是用于管理表之间的关系用的,除此外,也可以用它来新建、修改表,并且比SQLServer2000的表设计器还好用。在关系图空白处单击右键,在菜单中可以看到,我们既可以新建表,也可以将现有的表添加到关系图中:
这边我们将现有的表添加到关系图中:
默认表...
|
ROLLUP、CUBE运算符和GROUPBY一起使用能在结果集中加入一些额外的统计信息,例如有一张OrderDetail表,结构和数据如下:
例1:统计每个订单的产品数量。
程序代码selectorderid,sum(quantity)asquantityfromorderDetail
g...
|
COMPUTE函数能在普通查询的基础上显示一些统计信息,和ROLLUP和CUBE运算符不同,这些统计信息不直接加在结果集中,在查询分析器中可以看到,但不返回给客户端程序,并且它不需要和GROUPBY一起使用。
例如有一张OrderDetail表,结构和数据如下:
例1:统计所有订单的产品数
...
|
设计有用的索引是改善查询性能最重要的方面之一,它要求理解索引的结构及理解数据是如何使用的。
数据
在创建索引前,必须对数据有全面的了解,包括以下内容:
·逻辑和物理设计
·数据特征
·如何使用数据
为了设计有用和有效索引,必须依赖于对用户所发出查询的分析。对用户如何访问数据的不准确分析会导致查询响应...
|
1.SQLServer2000文件的类型(1).主要数据文件主要数据文件由主文件组中的初始数据文件组成。它包含所有数据库系统表。主要数据文件是数据库的起始点,它指向数据库中的其他文件。每一个数据库都有一个主要数据文件和一个主文件组,主要数据文件的扩展名是.mdf。(2).次要数据文件数据库可能包含次要数据文件。一些数据...
|
在SQLServer2000中,若想查看哪个SQL语句引起了阻塞,可以到数据库服务器→管理→当前活动→锁/进程ID下边查看,它列出了当前所有活动进程,并标明哪些进程引起了阻塞。
例如我们打开两个查询分析器,并运行下边语句:
程序代码useNorthwind
begintran
updateCustomers...
|
·所有数据库都有一个主要数据文件(.mdf)及一个或多个事务日志文件(.ldf),还可能有次要数据文件(.ndf)。这些物理文件不仅具有操作系统文件名,还具有逻辑文件名(用于Transact-SQL)。所有数据文件和事务日志文件的默认存放位置都是C:\ProgramFiles\MicrosoftSQLServer\MS...
|
今天一平台访问总出现ServiceUnavailable,在服务器上打开则显示Serveristoobusy。一般这问题多是应用程序占用了过多的系统资源所致,尝试回收、新建应用程序池问题没有解决,重启服务器问题依旧。
打开事件查看器,希望能找点线索,果然,在应用程序下边看见很多类似的消息:数据库xxx中文件xxx...
|
在SQLServer2000中要删除日志释放磁盘空间得分两步进行:
·执行backuplog语句来删除不活动日志,但此时磁盘空间并未释放;
·收缩数据库释放未使用的磁盘空间;
下边详细说明:
①.执行backuplog语句删除不活动日志
执行sql语句:backuplogNorthwindwi...
|
通常情况下,可以从两个方面来判断数据库是否设计的比较规范。一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少。若符合这两个条件,则可以说明这个数据库的规范化水平还是比较高的。当然这是两个泛泛而谈的指标。为了达到数据库设计规范化的要求,一般来说,需要符合以下五个要求。
要求一:表中应该避免可为空的列。
虽...
|
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。
2.应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
selectidfromtwherenumisnull
可以在num上设置默认值0,确保表中nu...
|
如果你正在负责一个基于SQLServer的项目,或者你刚刚接触SQLServer,你都有可能要面临一些数据库性能的问题,这篇文章会为你提供一些有用的指导(其中大多数也可以用于其它的DBMS)。
在这里,我不打算介绍使用SQLServer的窍门,也不能提供一个包治百病的方案,我所做的是总结一些经验----关于如何形成一...
|
解决思路
1).定义一张表,专门用来存放存所有需要唯一ID的表名称以及该表当前所使用到的ID值。
2).写一个存储过程,专门用来在上一步的表中取ID值。
这个思路非常简单,我不作解释了,直接来看看我的实现方法:
第一步:创建表
程序代码createtabletable_key
(
tabl...
|
下午在SQLServer2005上新建了一个登录名user01,但在给他分配数据库权限(DataCenter)时总是失败,提示:创建对于用户user01失败。
找了很久才发现原因,但在说明原因之前我先说明一个现象:SQLServer2005登录名和数据库用户是两个不同的概念,在给登录名分配数据库权限时都会...
|