SQL Server知识文章关闭所有内容预览 | 展开所有内容预览
-
[图文] 对SQL Server中实例名的解释
[内容预览]
1165 | 2017-03-08
SQL Server 实例是在计算机上安装的一个“独立”的服务器,在同一台计算机上可以安装多个SQL Server实例,应用程序可以同时连接同一个计算机上不同的实例。 实例以名称进行区分,用户可以指定实例名称,也可以使用默认的实例名。因此SQL Server 有两种实例:默认实例和命名实例。 默认实例:默认情况下,系统通过计算机的网络名称识别SQL Server数据库的实例。SQL Serve...
[阅读全文]
-
SQL Server中定义索引时需要注意的事项
[内容预览]
343 | 2017-03-07
索引纪录了所索引列在数据库表中的物理存储位置,实现了表中数据的逻辑排序。使用索引可以加快数据查询速度、减少系统响应时间、可以使表和表之间的连接速度加快。 但是,索引的乱用可能达不到预期的效果,反而给数据库增加了负担,下面介绍一些定义索引的基本原则: 1、定义索引需要付出一定代价,使用时需要权衡利弊 创建索引和维护索引都需要花费时间与精力。当建有索引的表中的纪录又增加、删除、修改操作时,数据库...
[阅读全文]
-
SQL SERVER数据库中已存在数据的时候如何设置主键自动递增
[内容预览]
496 | 2017-03-06
在SQL Server数据库中,如果主键设置为整数类型时,可以将其设置为标识列,使其自动递增。 但是,如果该表中在存在数据的情况下,设置标识列时,SQL Server会阻止该行为。 为了解决这一问题,可以通过设置SQL Server管理器关闭阻止。 具体方法如下: 在SQL Server管理器中,选择【工具】->【选项】,打开选项对话框,然后在左侧列表中选择【设计器】,将“在需要重建表时...
[阅读全文]
-
若安装.Net Framework 2.0时出现 Error 25015错误的解决方法
[内容预览]
865 | 2016-04-10
最近自己公司维护的一台服务器被挂马,在维护人员更换系统用户和密码后,导致网站无法正常访问,没办法,在多次调整后,服务器上的.net framework也不能正常工作了,就将所有的版本的framework卸载后,再重新安装时,出现以下错误: Error 25015 安装程序集“C:\Windows\Microsoft .NET\Framework\v2.0.50727\System.web.dl...
[阅读全文]
-
[组图] SQL Server 2008中“不允许保存更改,您所做的更改要求删除并重新创建以下表”问题 的解决办法
[内容预览]
1198 | 2014-07-05
在SQL Server2008中使用表设计器修改表后在保存时提示如下错误: 不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。 这种错误常常发生在表中有数据而需要更改表的字段类型或长度时发生,如图1. 图1 更改表后保存时的提示信息 解决方法如下: (1)在SQL Server Management ...
[阅读全文]
-
SQL Server 2008中截断数据库日志的方法
[内容预览]
5506 | 2014-03-14
今天发现WEB空间提供的SQL Server2008数据库的日志已经达到规定的上限。 于是,准备把数据库的日志进行截断操作。 但是在操作过程中遇到一系列的问题。 经过查询试验,最后问题终于得到解决。 下面把操作的过程记录到下面: 像以前那样使用下面的语句对其截断: BACKUP LOG 数据库名称 WITH NO_LOG 结果给出以下错误: 消息 3032,级别 16,状态 2,第...
[阅读全文]
-
SQL Server中直接获取客户端IP地址的方法
[内容预览]
642 | 2014-03-07
有时,我们需要登记用户的登录系统的IP地址,大多数情况下,我们是从客户端获取后再传回到服务器端进行保存;其实,还有一种方法就是从SQL Server中可以直接获取客户端的IP地址,下面是在SQL Server中自定义函数实现的。 CREATE FUNCTION [dbo].[GetCurrentIP] () RETURNS varchar(255) AS BEGIN DECLAR...
[阅读全文]
-
SQL Server中触发器简介
[内容预览]
594 | 2012-06-13
在前面的文章中,我们曾经介绍过触发器的作用,但那篇文章内容过于简单,可能大家还是不明白触发器到底是什么,其作用到底是什么,本文将较为详细地介绍一下SQL Server中触发器的相关知识。 首先,我们介绍一下什么是触发器: 触发器(trigger)是种特殊的存储过程,它的执行不是由程序调用,也不需要手动操作,它是由事件来触发,即当我们对个某个表执行增删改操作时所触发的。当对一个数据库或表进行增删...
[阅读全文]
-
SQL Server中通过查询系统表获取表中自增长列的相关信息
[内容预览]
533 | 2012-06-13
有时,我们想看看在一个表中,那一列是自动增长列,其列名是什么,这可以通过查询系统表syscolumns获得,在查询时只要指明要查询的表名和约束类型即可,下面分别给出获取自动增长列列名的两个方法。 第一个方法: select name from syscolumns where id=object_id('Student') and status & 128 = 128 第二个方法:...
[阅读全文]
-
[组图] SQL Server中判断表是否建立索引约束相关信息的方法
[内容预览]
482 | 2012-06-13
有时,我们需要判断SQL Server中某个表是否建立了索引以及索引的相关属性等信息,这可以借助SQL Server中的系统存储过程来实现 1、获取某表的所有索引及索引所属列名 sp_statistics 'Student' --获取表Student的所有索引信息及索引岁归属的列名 执行后,其返回信息如下: 2、获取某表索引与索引归属列以及描述信息 sp_helpindex 'Stu...
[阅读全文]
-
SQL Server2000中清理日志文件和压缩数据库的方法
[内容预览]
513 | 2012-06-10
在SQL Server中经常遇到事务日志变大的情况,除了将数据库设置为“自动收缩”外,还可以使用下面的SQL命令进行快速清除数据库中的事务日志,命令如下: - 第一步:清空日志 DUMP TRANSACTION databasename WITH NO_LOG -- 第二步:截断事务日志 BACKUP LOG databasename WITH NO_LOG -- 第三步:收缩数据库 ...
[阅读全文]
-
SQL Server中各种写法的效率问题探讨
[内容预览]
392 | 2012-05-19
经常使用数据库的人知道,同样一个问题可以使用不同的SQL语句来实现。但,这些不同的写法可能能达到同样的目的,但是执行效率肯定会大相径庭。下面是本文作者根据自己经验列举的一些例子,希望对研究SQL执行效率的大虾们有错启示,有所收获。 (1)一次插入多条数据时: CREATE TABLE tb(ID int, 名称 NVARCHAR(30), 备注 NVARCHAR(1000)) INSERT ...
[阅读全文]
-
MSSQL自定义数据类型的方法
[内容预览]
410 | 2012-05-04
用户定义的数据类型基于在 Microsoft SQL Server 中提供的数据类型。当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。例如,可定义一种称为postal_code 的数据类型,它基于 Char 数据类型。 当创建用户定义的数据类型时,必须提供三个数:数据类型的名称、所基于的系统数据类型和数据类型的可空性。 (1)用...
[阅读全文]
-
MsSQL的数据类型、大小及取值范围
[内容预览]
1096 | 2012-05-04
每种语言都有自己的数据类型,MSSQL也不例外,MSSQL的数据类型可以分为如下几类,下面将详细介绍这些数据类型: (1)数值类型 数值类型只包含数字,包括正数和负数、小数(浮点数)和整数。 整数由正整数和负整数组成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整数存储的数据类型是Int,Smallint和 Tinyint。 Int 数据类型存...
[阅读全文]
-
SQL Server 2005远程连接数据库的方法
[内容预览]
337 | 2011-10-10
有时我们需要远程操作其他SQL Server的数据库,那么怎么实现呢?下面给出具体的操作方法: (1)配置工具->SQLServer外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的DatabaseEngine节点,先择“远程连接”,接下建议选择“同时使用TCP/IP和namedpipes”,确定后重启数据库服务。 (2)登陆设置改为:SQLServer和Win...
[阅读全文]
-
SQL Server 2005 数据库引擎启动方法
[内容预览]
1059 | 2011-10-10
如果我们发现SQL server2005数据库安装后无法正常使用,那有可能是SQL Server2005的数据库引擎没有启动,启动后,问题可能得到解决。 在SQL Server2005中启动数据库引擎的方法有两种: (1)第一种方法 在计算机中选择:开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击“服务的连接...
[阅读全文]
-
SQL Server服务登录失败无法启动SQL Server
[内容预览]
352 | 2011-05-18
有时我们发现SQL Server的服务无法正常登陆了,下面给出相关的分析和解决办法。 发生该问题的原因: 安装SQL Server时是使用默认登录用户来作为启动SQL Server服务的账号(对于自己使用的单机,通常就是administrator了),当该用户更改了用户名(如有人喜欢把administrator改成admin)或更改了其口令时,再次启动服务器,就出现“同于登录失败而无法启动服务...
[阅读全文]
-
经常执行DBCC SHRINKDATABASE是否是件好事
[内容预览]
573 | 2011-05-18
本文详细讲解了不能频繁使用DBCC SHRINKDATABASE的原因,这为我们在收缩数据库找到了可参考的资料。 我们可能为节省空间,或其它原因,经常频繁地执行DBCC SHRINKDATABASE来收缩数据库,那么频繁地执行DBCC SHRINKDATABASE好么?下面就给出相关的解释。 首先,我们需要了解数据文件并不是所有的空间都会被使用,而是只有部分未使用的空间:包括已删除的数据、文件...
[阅读全文]
-
使用加密方法来增强SQL Server的安全性
[内容预览]
267 | 2011-05-18
随着数据安全需求的不断增加,不论以何种方式,都不要忽略对你的数据库备份文件的安全保证。在本地的SQL Server备份中,备份文件中的数据是以普通文本格式存储的,仅仅用文本编辑器就可以轻松阅读。根据表中使用的数据类型,一些数据比另外的一些数据更容易查看。 试试这个你几乎从来没有进行过的试验。对Northwind数据库进行备份,或者任何其它小型数据库,然后用任意的文本编辑器打开备份文件。你将会看到...
[阅读全文]
-
如何保证SQL Server免遭SQL注入攻击
[内容预览]
307 | 2011-05-18
SQL注入攻击可能是黑客攻击面向互联网的SQL Server数据库最常用的方式。任何使用动态SQL、允许未经检验的用户输入提交到数据库的应用程序都面临SQL注入攻击的风险,无论你的网络有多安全,或者你安装了多少防火墙。最近有一项关于Web黑客攻击的报告显示,SQL注入攻击呈上升趋势,不仅仅导致数据盗窃和数据丢失,而且在最近一连串的自动注入攻击中,数据库被破坏,向用户提供恶意Java脚本。这种渗透导...
[阅读全文]
-
主键与聚集索引之间的比较
[内容预览]
312 | 2011-05-15
本文讲解了主键与聚集索引之间的关系,并对其的联系与区别进行了对比。 1、主键(PRIMARY KEY ) 在MSDN中是这样描述的:表通常具有包含唯一标识表中每一行的值的一列或一组列。这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。在创建或修改表时,您可以通过定义 PRIMARY KEY 约束来创建主键。 一个表只能有一个 PRIMARY KEY 约束,并且 PRIMARY ...
[阅读全文]
-
SQL Server索引测试中常用的一些信息
[内容预览]
245 | 2011-05-15
本文讲解了再测试使用索引过程中常用的一些信息,如如何获得索引的信息、如何查看I/O信息等。 1、如何获得索引的一些信息 比如:查看索引的深度SQL 脚本如下: select INDEXPROPERTY (OBJECT_ID('ChargeHeap'),'ChargeHeap_NCInd','IndexDepth') 其中的 'ChargeHeap' 为我们要查看索引所在的表名,'Charg...
[阅读全文]
-
[组图] 聚簇索引与非聚簇索引
[内容预览]
1024 | 2011-05-15
不论是 聚集索引,还是非聚集索引,都是用B+树来实现的。我们在了解这两种索引之前,需要先了解B+树。 BTree,B-Tree,B+Tree,B*Tree都是什么 B+ 树的结构图: B+ 树的特点: (1)所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关键字恰好是有序的; (2)不可能在非叶子结点命中; (3)非叶子结点相当于是叶子结点的索引(稀疏索引),叶子结点相当...
[阅读全文]
-
[图文] SQL Server中关于数据页的基本知识
[内容预览]
512 | 2011-05-15
这里收集整理了一系列数据库的索引知识,算是对索引知识的一个总结回顾吧。通过总结,你将发现自己以前很多很模糊的概念都清晰了很多。 不论是缓存的数据信息,还是物理保存的信息,他们的基本单位都是数据页。所以理解数据页是最最基础的知识点,本文就介绍跟索引有关的数据页的一些基础知识。 数据页的基础知识 SQL Server 中数据存储的基本单位是页(Page)。数据库中的数据文件(.mdf 或 .nd...
[阅读全文]
-
Sql Server 2005中通用数据表表达式
[内容预览]
249 | 2011-05-15
对于关系型数据库来说,表现树状的层次结构始终是一个问题。微软在Sql Server 2005中首次尝试了解决这个问题,那就是被称之为通用数据表表达式(Common Table Expressions,CTE)的实现方式。 尽管CTE在现有的数据库架构中运行良好,微软找到了一种将此类层次结构作为头等概念来使用的方式。因此为了实现这种效果,他们在SQL Server 2008中提出了一种“Hier...
[阅读全文]
-
SQL Server中快速导入数据的方法对比
[内容预览]
254 | 2011-05-15
本文介绍了几种不同的批量导入数据的方法、各种方法相应的实例及其所需的时间长短…… 如果需要向SQL Server批量导入数据,根据导入的选项和表中的索引设置,数据导入的时间可能会在不同情况下相差甚远。如何能够把批量导入的过程尽量少花时间呢?在这里我们将会介绍几种不同的批量导入数据的方法、各种方法相应的实例及其所需的时间长短。 在我们的测试中我们采取了六种不同的数据导入方法: 1. 表含有一个...
[阅读全文]
-
SQL Server中的动态和静态内存分配
[内容预览]
256 | 2011-05-15
本文介绍了SQL服务器的内存管理方式:动态内存分配和静态内存分配。 我们知道,SQL服务器有两种管理方法,分别是动态分配和静态分配,用以控制程序可使用的内存数量。动态分配允许管理员声明一块内存的大小;考虑到它的实际使用,SQL服务器可以分配给其需要占用的内存的最大值,并且(理论上)在没有使用内存的情况下将其释放。静态分配则是创建一块固定的内存空间,提供给SQL Server使用—&m...
[阅读全文]
-
误删SQL Server事务日志后问题的解决方法
[内容预览]
408 | 2011-02-07
SQL Server的事务日志文件(ldf)在SQL Server服务未启动的情况下被删除,导致相应数据库被标志成置疑(suspend)状态。为了解决这个问题,可以按下面的方法去做: (1)分离被置疑的数据库,可以使用存储过程sp_detach_db; (2)附加数据库,可以使用存储过程sp_attach_single_file_db SQL Server2000可以直接在企业管理器中完成这...
[阅读全文]
-
[图文] SQL2005中设置ID自动增加的方法
[内容预览]
1930 | 2010-12-07
我们在SQL2000中,设置自动增值我们是在标识里选择是,然后再设置下面的标识的种子和标识增量,种子就是这从哪个数字开始,增量就是每次添加几。如下图: SQL2000标识方法 但SQL2005里没有这么多。设置方法也不一样。如下图,在列属性里没有任何关于设置标识的选项,只有在右边的表属性里,有个标识列。如你把ID设置为自增,那就在标识列里写ID或下拉选择。但在2005里没有标识的种子和标识...
[阅读全文]
-
sql server 2005中的表分区
[内容预览]
212 | 2010-11-14
SQL SERVER 2005中,终于引入了表分区,就是说,当一个表里的数据很多时,可以将其分拆到 多个的表里,大大提高了性能。下面举例子说明之 比如,在C盘下建立如下几个目录 C:\Data2\Primary C:\Data2\FG1 C:\Data2\FG2 C:\Data2\FG3 C:\Data2\FG4 其中primary存放的是主数据库文件,其他FG1--FG4存放四个...
[阅读全文]