现在的位置: 首页 > 综合 > 正文

SQL Server Express常见问题及解决办法

2013年11月09日 ⁄ 综合 ⁄ 共 3998字 ⁄ 字号 评论关闭

在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)
首选请确认SQL SERVER EXPRSS已安装到本地计算机上,并且SQL SERVER (SQLEXPRESS)服务已经成功启动。如果问题仍然存在,可以尝试应打开“SQL Server 外围应用配置器”,选择“服务和连接的外围应用配置器”,然后将“远程连接”配置为“同时使用 TCP/IP 和 named pipes”

由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
将连接字符串中的“User Instance=True”修改为“User Instance=False”即可。
相关参考文章请参阅《非管理员用户实例》

无法将文件 'X:\Website\App_Data\Database.mdf' 作为数据库 ''. 附加。当前命令发生了严重错误。应放弃任何可能产生的结果
需要为X分区以及X分区的子文件夹和文件分配Users组的“读取”权限。

尝试为文件 X:\Website\App_Data\Database.mdf 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中
首选要确认已经为X分区以及X分区的子文件夹和文件分配了Users组的“读取”权限。如果问题仍然存在,请使用SQL Server Management Studio连接到SQLEXPRESS数据库实

用T-SQL命令附加数据库时,出现如下异常信息:

无法打开物理文件 XXX.mdf"。操作系统错误 5:"5(拒绝访问。)"。 (Microsoft SQL Server,错误: 5120) 

解决方案:

找到xxx.MDF与xxx_log.LDF文件,右键-属性-安全-在组或用户名处添加Authenticated  Users-更改该组权限为完全权限,再次附加成功。

例,检查是否有名称是“Database”的数据库存在。如果有,分离同名数据库即可。


无法打开用户默认数据库。登录失败。
用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败

数据库文件Database.mdf 的读写权限被设置成只有NETWORK SERVICE才具有。解决方法是先停止掉SQL SERVER (SQLEXPRESS)服务,然后从父项集成权限,再次启动SQL SERVER (SQLEXPRESS)服务即可。

 

Microsoft SQL Server 2005 中无法创建“数据库关系图”的解决办法

Microsoft SQL Server 2005 数据库中,经常会出现无法创建“数据库关系图”的错误,原因大多是这个数据库是附加,权限不够的关系。

解决办法:

选择数据库名 —> 右键 —> 属性 —> 选择“文件”,将看到右边的“所有者”,选择“...”按钮将弹出对话框 —> 选择“浏览(B)...”按钮—> 在匹配的对象中选上“[NT AUTHORITY\SYSTEM]”即可。

Microsoft
SQL Server 2005
中数据乱码的解决办法
在Microsoft SQL Server 2005 数据库的数据表中,所有汉字都显示成了“???”乱码,问题原因出现在数据库的设置上。

解决办法:

选择数据库名 —> 属性 —> 选项 —> 排序规则,修改成“CHINESE_PRC_CI_AI”就可以了

注意:

在修改数据库的排序规则后,并非修改所有字段,比如"TrueName"就没有修改,有些预留关键字可能要手动修改。

修改某一字段的排序规则:

在相应字段的“列属性”中 —> 排序规则 —>修改成“Chinese_PRC_CI_AS”即可。

附加:

若是你不想修改数据库属性,而在Microsoft SQL Server
2005 数据库
录入数据时:

不能输入中文,使用SQL语句插入数据后,查看表中却显示成了“???”乱码。

解决办法:

数据列类型定义为以N开头,比如:nchar,nvarchar,ntext,N是national的缩写,代表unicode字符。

原来这样的语句:

insertinto
table1
values('中文');

就改正一下:

insertinto
table1
values(N'中文')

SQL Server 2005 导出错误:

在将Excel 导入sql server 2005数据库时, 提示:"标题: SQL Server 导入和导出向导错误 0xc00470fe: 数据流任务: 产品级别对于 组件“源 - Sheet1$”(1) 而言不足。"
原因:      应该是没有安装SQL Server Integration Service(SSIS).
解决方法:安装SQL Server Integration Service(SSIS).

附加:

数据类型为text的数据导出可能报错!

数据字段名为中文也会产生数据导出报错!
字段类型问题:把需要导入数据的那个表的字段类型改为varchar型的,导完数据后一定记得再改回来。


数据表中的某字段的值里包含了分隔符,这样导致另一个字段出现该问题。更改分隔符。


SQL Server2005 文本输出格式设置:

工具—> 选项—> 查询结果—> SQL Server—> 以文本格式显示结果在右边设置即可,关闭原来的查询窗口,点击“新建查询”。




 

由于字段类型导致的数据表联接报错

不能在 ntext、text 或 image
列上直接联接表,但可以使用substring 在 ntext、text 或 image 列上间接联接表。

例如:SELECT * FROM t1 JOIN t2 ON substring(t1.textcolumn, 1, 20) = substring(t2.textcolumn, 1, 20)

          // 可对表 t1 和 t2 中每个文本列的前 20 个字符进行两表内部联接。

此外,另一种可以采用的比较两个表中的 ntext 或 text 列的方法是用 WHERE 子句比较列的长度。

例如:WHERE datalength(p1.pr_info) = datalength(p2.pr_info)


SQL Server 2005 附加数据库失败,错误: 3415

这个问题从根本上说,应该是一个sa用户权限的问题,在sql2005里,sa不具有某些操作这样的权限,那么如何解决呢。除了更改sa的权限外,可以使用windows身份验证登陆,做完需要的操作之后,再重新使用sa 帐户登陆,这样避开了这个错误的产生了。

下面是网上的一个解决方法:

     附加数据库 对于 服务器“***”失败。 (Microsoft.SqlServer.Smo)

     无法升级数据库 ‘******’,因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)

     查看了数据库文件,它们并没有只读属性,在 SQL Server 2000 中附加一切正常。


其实这个错误并不是文件只读的问题,严格说应该是一个“权限”的问题,当前的 SQL Server 登录帐号没有对要附加文件的可写权限,就会出现上述“只读”的提示,解决办法有以下几种:

    * 将要附加的文件拷贝到 SQL Server 默认的 Data 目录,此时附加就会成功;

    * 在登录验证时,选择“Windows 身份验证”,而不是“SQL Server 身份验证”,即便你的登录帐号是 sa;

    * 如果一定要使用“SQL Server 身份验证”,请更改登录帐号的权限使其对要附加文件有完全操作权限;

    * 将 SQL Server 服务的帐户登录身份由 Network Service 改为 Local Service;


在连接到SQL Server2005时,在默认的设置下SQL Server不允许进行远程连接可能会导致失败的解决办法

Sql Server2005 ,我们远程连接无法连接上的用这3步就可以了。

1.在"外围配置"工具把"允许TCP/IP和命名管道"勾上,当然"仅TCP/IP"也可以。



                                      图1:外围应用配置器中选择TCP/IP或者named pipes;


       其中named pipes就是类似进程间通讯用的东西,(说错了请大家指正)可以单独选择'仅选择TCP/IP';

  

2.然后从"配置管理器"中找到"...2005网络配置"->"网络协议"->"TCP/IP"查看里面的端口号,默认是1433,可以改成自己喜欢的.




                                
图2:找到系统默认对应的TCP端口号,可以修改成自己喜欢的

3.在相应的防火墙新增个例外,比如默认的1433这样就可以远程连接了.

图3:在相应防火墙中新增一个在'第二步'中设置的TCP端口号,这里以XP系统自带的防火墙为例


     通过以上三步就可以了...刚开始自己也是一头雾水,不过SQL Server2005弹出的错误提示可以有很大的帮助.

关于卸载SQLEXPRESS后不能重新安装的解决方法

主要原因:

SQLEXPRESS默认实例名没有删除。


解决方法:


删除C:\Program Files\Microsoft SQL Server这整个文件夹,


regedit打开注册表

删除[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server]主键

删除[HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server]主键


windows服务如果还在,还需要删除服务.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services  直接删除sql相关的键值便可。


重新启动计算机即

 

抱歉!评论已关闭.