安装或者重装Sql Server2000时提示挂起文件错误的解决办法

    最近因为需要安装Sql Server 2000数据库,所以下载了个安装程序,但是在安装Sql Server 2000软件时,老是提示“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”,解决办法如下。

    点开始菜单,点击“运行”,输入Regedit然后按回车键打开注册表编辑器,从左侧依次展开到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager然后在右侧视图当中的PendingFileRenameOperations值即可

    本人在安装的时候,顺便也升级了Sql Server 2000的SP4补丁,同样也提示“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机”,非常苦恼,无奈之下上搜索引擎搜索到一个工具,名字是SQL2000安装挂起修复工具,一键就可以完成以上操作,非常方便,也希望可以方便各位。

SQL2000安装挂起修复工具的下载地址在此 http://u.x2009.net/5

解决Microsoft SQL Server(MSSQL)安装时提示《以前的某个程序安装已在计算机上穿件挂起的文件操作。运行安装程序之前必须重新启》而无法安装的问题

问:我的电脑安装Microsoft SQL Server(MSSQL)时提示《以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机》这是什么原因了?解决Microsoft SQL Server(MSSQL)提示《以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机》的方法是怎样的呢?

答:安装Microsoft SQL Server(MSSQL)提示《以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机》的原因还真没找到,但是解决办法却不难,请打开注册表编辑器(在开始菜单的“运行”中输入"regedit(即注册表编辑器)")....
在左侧依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations项目....
并删除它...(如果这一项里面有内容,最安全的办法是把它改个名字,等Microsoft SQL Server(MSSQL)安装完后再把名字改回来即可)
这样就可以清除安装暂挂项目。
即可解决以上问题...

在SQL Server和Access中清空表并重新开始编号的方法

SQL Server:

Truncate是SQL中的一个删除数据内容的语句,用法是:

语法

TRUNCATE TABLE name

参数

name

是要截断的的名称或要删除其全部行的的名称。

下面是对Truncate语句在MSSQLServer2000中用法和原理的说明:

Truncate table 名 速度快,而且效率高,因为:

TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。

DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

TRUNCATE TABLE 删除中的所有行,但结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除定义及其数据,请使用 DROP TABLE 语句。

对于由 FOREIGN KEY 约束引用的,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。

TRUNCATE TABLE 不能用于参与了索引视图的

对用TRUNCATE TABLE删除数据的上增加数据时,要使用UPDATE STATISTICS来维护索引信息。

示例

下例删除 authors 中的所有数据。

TRUNCATE TABLE authors

权限

TRUNCATE TABLE 权限默认授予所有者、sysadmin 固定服务器角色成员、db_owner 和 db_ddladmin 固定数据库角色成员且不可转让。

Access

delete   from   名   ;   //删除中记录  
  ALTER   TABLE   名     //重新标识计数 
      ALTER   COLUMN   OrderId   COUNTER   (1,   1)   ;

Microsoft SQL Server数据库的备份与恢复

这是我以前做的一个网站项目中的开发文档附件。我后来的一段时间都是用PHP+MySQL数据库做网站,很久没接触SQL Server数据库了,但现在又要跟SQL Server数据库打交道了,就把这个附近发了出来,方便参考。
★附件㈠、如何进行SQL Server数据库的备份与恢复
方法一、利用备份和恢复
先对源数据库进行完全备份,备份到一个设备(device)上,然后把备份文件复制到目的服务器上(恢复的速度快),进行数据库的恢复操作,在恢复的数据库名中填上源数据库的名字(名字必须相同),选择强制型恢复(可以覆盖以前数据库的选项),在选择从设备中进行恢复,浏览时选中备份的文件就行了。这种方法可以完全恢复数据库,包括外键,主键,索引。
方法二、直接拷贝数据文件
把数据库的数据文件(*.mdf)和日志文件(*.ldf)都拷贝到目的服务器,在SQL Server Query Analyzer(中文名:SQL查询分析器)中用语句进行恢复:
EXEC sp_attach_db @dbname = 'test',
@filename1 = 'c:\mssql\data\test_data.mdf',
@filename2 = 'c:\mssql\data\test_log.ldf'
这样就把test数据库附加到SQL Server中,可以照常使用。如果不想用原来的日志文件,可以用如下的命令:
EXEC sp_detach_db @dbname = 'test'
EXEC sp_attach_single_file_db @dbname = 'test',
@physname = 'c:\mssql\data\test_data.mdf'
这个语句的作用是仅仅加载数据文件,日志文件可以由SQL Server数据库自动添加,但是原来的日志文件中记录的数据就丢失了。

转载自 http://blog.s135.com/post/58/

提示“用户sa登录失败,该用户与可信Sql Server连接无关联 (Sql Server 到主机的TCP/IP 连接失败)”的解决办法

问:

我的电脑使用Sql Server 2005 ,登陆时提示“用户sa登录失败,该用户与可信Sql Server连接无关联 (Sql Server 到主机的TCP/IP 连接失败)”,请问如何解决Sql Server 2005出现的这个问题呢?

出现此提示,是因为默认设置而导致,需要修改一下Sql Server 2005的设置即可。

1.打开SQL Server Management Studio Express,身份验证选择“Windows 身份验证”后点“连接

2.展开“安全性”,以及“登录名”,选择sa用户,或者出现问题的用户名,点它上面点右键,点“属性”,点“用户映射”,然后在数据库前的“映射”勾选,点击数据库名,在下面勾选“db_owner”和“public”,然后确定

3.在“对象资源管理器”选择Sql服务器的名字,然后点右键,点“属性”,出现的是“服务器属性”,在左边找到“安全性”,选择“Sql Server和Windows身份验证模式”,确认即可

另外,Sql Server 2005禁止了Tcp/Ip连接,启用Tcp/Ip的办法如下

打开开始菜单里的“Microsoft SQL Server 2005\配置工具\SQL Server Configuration Manager”,选择“MsSqlServer”,然后在右边有个“Tcp/Ip协议”,启动它,然后重新启动Sql Server 2005的服务即可生效.

Microsoft SQL Server(MSSQL) 2005安装时出错,提示“文件夹路径 .. 中含有无效的字符”的解决办法

问:

我的电脑安装Microsoft SQL(MSSQL) Server 2005时,安装程序提示“文件夹路径 .. 中含有无效的字符”,请问如何解决安装程序出现提示“文件夹路径 .. 中含有无效的字符”问题呢

答:

可能是你的电脑以前安装过Microsoft SQL(MSSQL) Server 2000导致,请删除注册表相关项即可解决Microsoft SQL(MSSQL) Server 2005安装时提示“文件夹路径 .. 中含有无效的字符”的问题。相关注册表项的位置如下:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server
HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server
这两个删除就好了.

在ACCESS(Mssql)+ASP实现随机读取数据库记录的简单方法

需要在MsSQL Server中想进行随机排序(随机取N条记录)方法相当的简单,只需要简单地加个“Order By Rnd()"或”Order By NewID()"就可以成功的随机排序读取数据库记录内容了,但这招到了ACCESS中却出问题了。在ACCESS中用以上Order排序出来的显示结果每次都是一样的(虽然也是随机的,但是每次都是一样)。在百度Google搜索了很久,也没有找到比较有建设性的解决方案,大多数都是建议用SQL语句查询出全部记录,然后在ASP中进行随机排序。

发现用“Select * From [data] Order By Rnd(ID)"可以实现对记录集的随机排序(其中ID是[data]这个表的主键『下同』--不必非是主键,只要是数字类型的字段就可以了)。但奇怪的是在ACCESS中明明可以随机排序的,在ASP中用同样的语句进行查询却还是每次查询出的记录集顺序相同。

再试…… 最后终于发现用“SELECT  * FROM [data] ORDER BY Rnd(ID-timer())”在ASP跟ACCESS中查询得到的记录集是随机排序的了。

呵呵,方法如此简单,希望你可以得到这篇文章的帮助噢。

来自csdn的access数据库转换成SQL Server数据库的方法,很齐全!

首先如果一开始就需要制作SQL Server的网站,那么最好将你的爱机装上Windows 2000或者2003这样的Server版,这样的版本是支持SQL Server正式版的安装的,而XP只能支持个人版或者开发版,我没有装过,但对于调试网站而言最好还是在正式版下工作,转化的整个过程不算太复杂,但至少可以省下一些精力。我的爱机是XP,所以只好先用ACCESS调试。

好了,当你找到一台装有SQL Server的机器时,你便可以开始转换并调试了。

1。先利用转化软件:CooSel2.0 CreateSQL V1.05,我用的这个,非常好用。具体操作的话,我用的是生成升迁SQL脚本,保存为 *.sql文件后,在SQL2000的查询分析器里调入执行。而SQL Server的具体操作在此不便赘述。这样,你的数据库就转化成了MSSQL数据库

2。对asp而言,首先是数据库连接文件的修改:这点可以参考动网论坛的conn.asp

Dim ConnStr
'sql数据库连接参数:数据库名、用户密码、用户名、连接名(本地用local,外地用IP)
Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName
SqlDatabaseName = "dvbbs7" '数据库名称
SqlPassword = "" '数据库密码
SqlUsername = "dvbbs" '数据库用户名
SqlLocalName = "(local)"
ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";"
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr

即只需要修改数据库名称、用户名和密码即可覆盖原来的ACCESS连接方法并使用。如果你的网站同时包含了动网论坛,则可根据1。的操作将动网的数据库也转换成SQL Server,值得称道的是:动网考虑了ACCESS和SQL Server两种数据库的使用,因此在修改ASP源代码的时候不需要对动网的源代码进行更改,可谓方便至极,考虑得十分周全~~

3。这时候你可以先浏览一下新的网站了,如果出错了,也不用担心,但是有很多页面已经是可以正常显示了。接着就是对整站程序的修改了。尤其要注意的是:所有的修改都只针对对数据库进行操作的语句,几乎全是对SQL语句的修改。而在一般的代码中是绝对不需要修改的!否则会出错!!

4。真假值的判断。ACCESS提供了布尔值这一数据类型,但是在SQL Server中,如果你在SQL语句中填写Where AA=True则是错误的,因为MSSQL不支持在数据库中True和False的判断。这时候你需要将所有SQL语句中的True和False改为1和0。而在一般的程序中,例如rs("aa")=True则不需要修改!因为这句话并不是对数据库的操作。可能你会说这样改起来,对于大网站而言,是非常麻烦的,的确,但有一些比较简便的方法。比如在dreamweaver中,你可以利用整个文件夹的查找,找出所有的True和False,然后筛选出对数据库进行操作的True和False并将他们改成1和0。另外还有一点:在SQL Server中也需要更改一下,ACCESS转化后布尔值变成了Bit值,最好将默认值设为0,即与ACCESS一样设置默认值为False。

5。有一些网站中提到:sql数据库表是没有自动字段的,因此原来access中的自动字段被转换成了普通字段,需要手工改成标识类型,增量为1。这点其实软件在转化的过程中已经帮你完成了,如果你是手工转化的话,确实需要修改标识类型。还有一点我没有遇到过,但是有的网站也提到了:空值的表示:在access中,判断空值一般用是否=""来表示,但是这在SQL中往往出错,如果遇到出错的问题或者程序运行不正常,可以改成如这样判断:where (name is null)。

6。如果你在SQL语句中同时使用了VB函数,很遗憾,这在MSSQL中是不能被辨认的,最好的方法是先将他在SQL之外处理,然后存入变量中导入到SQL语句中。

7。最主要的还是时间函数的各种修改,这占到了工作量的90%。其一是将所有数据库操作语句中的NOW()转化成GETDATE();其二是datediff和dateadd这类函数需要将第一项中的引号去掉,即datediff("s",date1,date2)改为datediff(s,date1,date2);其三,ACCESS中时间字符串都用#括起来,而MSSQL中是用''来表示的,即等同于一般的字符串;其四有一些时间函数在MSSQL中是不能被辨认的,基本上所有的SQL Server中的时间日期函数如下:

day(), month(), year()
dateadd(datepart, number, date), datapart指定对那一部分加,number知道加多少,date指定在谁的基础上加。datepart的取值包括,year,quarter,month,dayofyear,day,week,hour,minute,second,比如明天dateadd(day,1, getdate())
datediff(datepart,date1,date2). datapart和上面一样。整个函数结果是date2 - date1
datename(datepart, date) 取那一部分,返回字符串。
datepart(datepart, date) 取一部分,返回整数。
getdate()当前时间

PS一下,这是我在CSDN上花100分“买”回来的,很贵。。。可能你要说网上可以搜到N的N次方条这样的记录,但一来他们的讲解并没到讲到我的问题上来,二来有些东西第一遍看上去没有感觉,只有反复琢磨才会有收获的。

因此:如果你的时间函数不在上述范围内或者与之不尽相同,请根据相应的说明加以修改。

完成了以上的工作,基本上你的网站就可以正常运行了,当时我修改的时候用了2个小时,我个人认为完全可以接受,比我当初想像中的要快很多。但是之所以去CSDN问,是因为当时传递了一个时间作为变量,而当传递过去以后,在SQL中是不能正常执行的,也就是说传递过去的时间不管你怎么换,SQL都不认为那是时间,因此最好的方法是传递小时,分钟或者日期,单个传递和判断。datepart返回的就是整数,这样就可以与传递的参数相等了。

把ACCESS(mdb)数据库转成SQL(mdf)数据库的办法

很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项 一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的; 二,转换的

一、转换方法

1,打开”控制面板“下”管理工具“中的”数据库源“;

2,按”添加“添加一个新的数据源,在选择栏里选”Driver do microsoft Access (*.mdb)”,完成后将出现一个框, 在”数据库源“里面输入你想写的名称,我取名叫“ABC”,说明不需要填,接着,按下面的选择,寻找你的数据库地址和选中(注意,请先备份自己的ACCESS数据库),然后确定。 数据源在这里建好了,剩下转换了。

3,打开SQL2000企业管理器,进入数据库,新建一个空的数据库“ABC”;

4,选择新建立的数据库,按鼠标右键,选择“所有任务”下“导入数据”,按“下一步”继续;

5,在数据库源下拉但中选择”Driver do microsoft Access(*.mdb)“,在”用户/系统DSN“中,选种你刚才添加的”ABC“,按 ”下一步“;

6,“目的”不需要修改,选择服务器(一般下为自己的本机“local“,也可以选?

二、数据修改

1,由于SQL2000里面没有"自动编号",所以你的以"自动编号"设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的"标示"选择"是",种子为"1",增量为"1",
2,另外,ACCESS2000转换成SQL2000后,原来属性为"是/否"的字段将被转换成非空的"bit",这时候你必须修改成自己想要的属性了;
3,另外,大家要注意对时间函数的把握.ACCESS与SQL是有很多不同的.

Microsoft SQL 2000附加数据库时提示“错误 5173:不能使文件与不同的数据库相关”的解决办法

附加数据库时出现的问题
从提示看,应该你要附加的数据文件和日志属于不同的数据库

备份你的数据文件,试试按下面的步骤处理能否解决:

1.新建一个同名的数据库

2.再停掉sql server(注意不要分离数据库)

3.用要附加的数据文件覆盖掉这个新建的数据库

4.再重启sql server

5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)

USE MASTER
GO

SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO

UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'
Go

sp_dboption '置疑的数据库名', 'single user', 'true'
Go

DBCC CHECKDB('置疑的数据库名')
Go

update sysdatabases set status =28 where name='置疑的数据库名'
Go

sp_configure 'allow updates', 0 reconfigure with override
Go

sp_dboption '置疑的数据库名', 'single user', 'false'
Go

6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了.