sql server常见错误说明

更新时间:2024-01-20 14:50:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

SQL server 常见错误

一、常见错误

'用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联,做JSP项目连接数据库

2009-01-05 09:27 15061人阅读 评论(9) 收藏 举报

今天做JSP项目连接数据库,结果报错,出错的原因是:'用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联'.今天上网上查了半天还是搞不定,最后经过网上和书上的汇总,具体的方法是:1:打开SQL Server Manager管理器!在左面找到 ‘安全性’ 单击右键 选择‘新建”,“登录” 弹出一个对话框,在登录名中输入你的登录号,选择'SQLSERVER身份验证',并输入密码,可以把‘用户下次登录时必须修改密码’取消掉。 点击‘用户映射’,在右面选择要映射的数据库,并在前面打勾!在下面一栏中‘db-owner’和‘public’前面打勾。然后点击'状态'在右面栏中选中"授予"、“启用”,这两项一般是默认的,但如果默认的不是此两项必须改过来,不然是连不上的!点击‘确定’。 2:找到SQL服务器,在左栏中上面,单击右键,在弹出的菜单中选择“属性”命令。弹出一个对话框,单击“安全性”,在“服务器身份验证”下面选择“SQL SERVER和WINDOWS身份验证模式”,在前面打勾!记得这一步很重要,如果没有这一步你就别想登录成功!然后单击“确定”就可以了! 3:重新启动服务就可

以选择SQL SERVER 身份验证模式登录了!结果找了网上所有方法还是没用,最后发现还是出现在着急上忘记启动服务器,关键时刻,就是不冷静各位不要学我啊切记:一定要把SQL2005服务重启才生效。找了几种方法与大家参考

SQL Server2005常见错误及解决方案

问题一、忘记了登录Microsoft SQL Server 2005 的sa的登录密码

解决方法:先用windows身份验证的方式登录进去,然后在‘安全性’-‘登录’-右键单击‘sa’-‘属性’,修改密码点击确定就可以了。

问题二、已成功与服务器建立连接,但是在登录过程中发生错取。(provider:共享内存提供程序,error:0-管道的另一端上无任何进程。)(Microsoft SQL Server,错误:233)

解决方法:打开‘程序’-‘所有程序’-‘Microsoft SQL Server 2005 ’-‘配置工具’-‘SQL Server 配置管理器’,在弹出的窗体中,找到‘SQL Server 2005 网络配置’,把‘MSSQLSERVER的协议’下的“Named Pipes”和“TCP/IP”启动,然后重新启动Microsoft SQL

Server 2005就可以了。

问题三、无法打开用户默认数据库。登录失败。用户‘sa’登录失败。(Microsoft SQL Server, 错误:4064)

解决方法:先用windows身份验证的方式登录进去,然后在‘安全性’-‘登录’-右键单击‘sa’-‘属性’,将默认数据库设置成master,点击确定就可以了。

问题四、sql server 2005 错误 18452 无法连接到服务器

服务器:消息18452, 级别16,状态1

[Microsoft][ODBC SQL Server Driver][SQL Server]用户‘sa’登陆失败。原因:未与信任SQL Server连接相关联

该错误产生的原因是由于SQL Server使用了\仅 Windows\的身份验证方式,因此用户无法使用SQL Server的登录帐户(例如 sa )进行连接,解决方法如下

设置允许SQL Server身份登录 (基本上这个很有用) 操作步骤:

1。在企业管理器中,展开\组\,鼠标右键点击SQL Server

服务器的名称 2。选择\属性\

3。再选择\安全性\选项卡

4。在\身份验证\下,选择\和 Windows\5。确定,并重新启动SQL Server服务

问题五、用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联。 解决方法:检查你的数据库的认证模式,windows 和 混合模式,需要SA登陆的请选择混合模式。

检查计算机1433连接端口,1434数据端口是否打开

针对sql 2005 进入管理器中“安全”==》“用户”==》双击用户(弹出属性对话框)==》“状态”把状态改成enable,退出管理器重新登录(用户验证模式)

即:右键数据库属性对话框,选择“安全性”选项卡,服务器身份验证模式选择“SQL Server和Windows身份验证模式 。然后重新配置sa的登陆信息即可。

SQL SERVER 2005使用sa 登录失败-提示该用户与可信 SQL Server 连接无关联 错误提示:

sa 登录失败,提示该用户与可信 SQL Server 连接无关联 解决方法:

打开SQL Server Management Studio Express,

右键点击服务器,选择Properties(属性),在弹出窗口中点击Security(安全)切换到安全面板,

将server authentication服务器认证从windows authentication mode(windows用户认证模式)

修改为Sql Server and Windows Authentication mode(Sql server和windows认证模式),ok。

打开security(安全性) -- logins(登录名) ,右键选中sa,选择properties(属性),点击Status(状态)切换到状态面板,将Login(登录)设置为Enabled(启用)。

如果还是不行那就来最后一招?? 将连接字符串的服务器改一下 默认的如下: 代码:

Data Source=./SQLEXPRESS; 改了以后:

代码:

Data Source=localhost;

二、用户sa无法登录

SQL2005_用户_'sa'_登录失败。该用户与可信_SQL_Server_连接无关联

2011-01-22 14:41:51| 分类: net | 标签:sql server 登录 sa 身份验证 |字号大中小 订阅

'用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联

问题一、忘记了登录Microsoft SQL Server 2005 的sa的登录密码

解决方法:先用windows身份验证的方式登录进去,然后在?安全性?-?登录?-右键单击?sa?-?属性?,修改密码点击确定就可以了。

问题二、已成功与服务器建立连接,但是在登录过程中发生错取。(provider:共享内存提供程序,error:0-管道的另一端上无任何进程。)(Microsoft SQL Server,错误:233)

解决方法:打开?程序?-?所有程序?-?Microsoft SQL Server 2005 ?-?配置工具?-?SQL Server 配置管理器?,在弹出的窗体中,找到?SQL Server 2005 网络配置?,把?MSSQLSERVER的协议?下的“Named Pipes”和“TCP/IP”启动,然后重新启动Microsoft SQL Server 2005就可以了。

问题三、无法打开用户默认数据库。登录失败。用户?sa?登录失败。(Microsoft SQL Server, 错误:4064)

解决方法:先用windows身份验证的方式登录进去,然后在?安全性?-?登录?-右键单击?sa?-?属性?,将默认数据库设置成master,点击确定就可以了。

问题四、sql server 2005 错误 18452 无法连接到服务器

服务器:消息18452, 级别16,状态1

[Microsoft][ODBC SQL Server Driver][SQL Server]用户?sa?登陆失败。原因:未与信任SQL Server连接相关联

该错误产生的原因是由于SQL Server使用了\仅 Windows\的身份验证方式,因此用户无法使用SQL Server的登录帐户(例如 sa )进行连接,解决方法如下

设置允许SQL Server身份登录 (基本上这个很有用) 操作步骤:

1。在企业管理器中,展开\组\,鼠标右键点击SQL Server服务器的名称

2。选择\属性\

3。再选择\安全性\选项卡

4。在\身份验证\下,选择\和 Windows\5。确定,并重新启动SQL Server服务

问题五、用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联。

解决方法:检查你的数据库的认证模式,windows 和 混合模式,需要SA登陆的请选择混合模式。

检查计算机1433连接端口,1434数据端口是否打开

针对sql 2005 进入管理器中“安全”==》“用户”==》双击用户(弹出属性对话框)==》“状态”把状态改成enable,退出管理器重新登录(用户验证模式)

即:右键数据库属性对话框,选择“安全性”选项卡,服务器身份验证模式选择“SQL Server和Windows身份验证模式 。然后重新配置sa的登陆信息即可。

SQL SERVER 2005使用sa 登录失败-提示该用户与可信 SQL Server 连接无关联 错误提示:

sa 登录失败,提示该用户与可信 SQL Server 连接无关联 解决方法:

打开SQL Server Management Studio Express,

右键点击服务器,选择Properties(属性),在弹出窗口中点击Security(安全)切换到安全面板, 将server authentication服务器认证从windows authentication mode(windows用户认证模式) 修改为Sql Server and Windows Authentication mode(Sql server和windows认证模式),ok。 打开security(安全性) -- logins(登录名) ,右键选中sa,选择properties(属性),点击Status(状态)切换到状态面板,将Login(登录)设置为Enabled(启用)。

切记:一定要把SQL2005服务重启才生效。

sql2005管道的另一端上无任何进程”及附带一系列问题完整解决方法

问题一:已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。

用windows身份登录management studio, 点击站点属性,将安全选项 更改为:windows 和sql 混合身份登录,解决。

问题二:SQL2005企业管理器登录时选用windows身份验证一切顺利,然而使用sql server身份验证即sa用户名登录时,却出现以下错误提示“provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程”。

于是按以下步骤修改设置:

既然windows身份验证能够通过,就以该身份先登录进管理器,然后在服务器属性中有一项服务器身份验证,设为sql server和windows身份验证模式。下一步,在安全--登录中设置sa用户的属性,在状态一栏中有“登录”一项,默认是禁用,改为启用。修改完成后,重启企业管理器以sa用户名进行登录,问题依旧。想了半天,原来在设置完“sql server和windows身份验证模式”后,要求重启服务。当时设置完成后只是重新开启了企业管理器,其服务并没重新启动。

因此找到“SQL Server 外围应用配置器”,运行后,选择“服务和连接外围应用配置器”,先停止SQLEXPRESS一下,再启动一次。至此问题应该解决了。

问题三:已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。) “/cs”应用程序中的服务器错误。

已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程.)

出现这样的错误,到网上查了好多资料也没有好的解决办法,最后打开web.config把

key=\e=communityserver\改成

PS 新问题:解决完成后,调试程序时,系统可能会提示你“不能执行SELECT操作”之类的。这时,需要重新用WINDOWS登录(一定且必须,若还使用新创建的用户登录的话,会提示你“你没有修改权限”)。

WINDOWS登录进去后,双击此用户,到“用户映射”中,将相应所有项的db_owner全部选上。

重新调试系统,可能会提示你“启动项目不正确”,那就右击“解决方案”,进去选启动为“WEB”咯。

provider: 命名管道提供程序, error: 40 - 无法打开到SQL Server的连接 在链接数据库的时候,提示一个错误!错误信息如下! 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error:40 - 无法打开到 SQL Server 的连接)

我是现装了SQL Server2000 后 在装SQL Server2005的,网上有很多解决方法! 下面一一列举下:

1,在开始菜单,程序里面的 SQL Server2005下有个SQL Server2005外围程序配置器 选择服务和连接的外围配置器,在database engine里选择远程控制,把本地连接和远程连接改成同时使用TCP/IP和named pipes!保存.关闭数据库服务器链接,重新链接!

< xmlnamespace prefix =\

2,配置文件web.config里面的数据库连接字符串里面的Data Source用本地服务器名字,不要用Ip或者loacl或者.

例:

修改编辑全局配置和编辑配置

红圈部分原来有默认的数据库连接字符串的,把它移除!

4,打SQL Server补丁

在查看数据库日志的时候,发现了这样的提示!

您运行的 Microsoft SQL Server 2000 版本或 Microsoft SQL Server 2000 Desktop Engine (也称为 MSDE) 和 Microsoft Windows Server 2003 家族使用时存在已知的 安全弱点。为了减少计算机被某些病毒的攻击,Microsoft SQL Server 2000,MSDE 或 两者的 TCP/IP 和 UDP 网络端口被禁用。要启用这些端口,您必须从 http://www.microsoft.com/sql/downloads/default.asp 或 http://www.microsoft.com/china/sql/downloads/default.asp 安装一个修补程序, 或 Microsoft SQL Server 2000 或 MSDE 的最新服务包。 下载补丁,打上!

5,修改SQL Server2000的远程连接端口

在现装了SQL Server2000后装SQL Server2005的时候,后者会把前者的远程连接端口修改了,原先的端口为1433。在我查看的时候果然被改成1058端口了 把它改过来,改成1433即可!

开始菜单,程序里面的SQL Server2000下有个服务器网络使用工具。选择TCP/IP然后点击属性编辑它的端口

选择TCP/IP修改其属性

把默认端口设置为1433

总结,因为,我遇到了这样的问题,找了很久解决方法,用修改端口的方法解决了数据库链接的问题,希望我总结的几个方法能对大家有用!

三、 Mysql 和sql server 的一些使用区别

MySql与SqlServer的一些常用用法的差别 由于工作的原因:上家公司的数据库全采用MySql,所以不得不用它。因此也学到了MySql的一些知识,但考虑到今后可能没机会使用了,所以想趁现在离职在家休息,打算把这些东西整理一下,也为了万一今后能用上,留个参考的资源。考虑到一直在使用SqlServer,所以就打算直接与SqlServer对比来写。

本文将主要列出MySql与SqlServer不同的地方,且以常用的存储过程的相关内容为主。

1. 标识符限定符

SqlServer MySql [] `` 2. 字符串相加

SqlServer MySql 直接用 + concat() 3. isnull()

SqlServer MySql isnull() ifnull() 注意:MySql也有isnull()函数,但意义不一样 4. getdate()

SqlServer MySql getdate() now() 5. newid()

SqlServer MySql newid() uuid() 6. @@ROWCOUNT

SqlServer MySql @@ROWCOUNT row_count() 注意:MySql的这个函数仅对于update, insert, delete有效 7. SCOPE_IDENTITY()

SqlServer MySql SCOPE_IDENTITY() last_insert_id() 8. if ... else ...

IF Boolean_expression { sql_statement | statement_block } [ ELSE SqlServer { sql_statement | statement_block } ] -- 若要定义语句块,请使用控制流关键字 BEGIN 和 END。 IF search_condition THEN statement_list MySql [ELSEIF search_condition THEN statement_list] ... [ELSE statement_list] END IF 注意:对于MySql来说,then, end if是必须的。类似的还有其它的流程控制语句,这里就不一一列出。 9. declare

其实,SqlServer和MySql都有这个语句,用于定义变量,但差别在于:在MySql中,DECLARE仅被用在BEGIN ... END复合语句里,并且必须在复合语句的开头,在任何其它语句之前。这个要求在写游标时,会感觉很BT. 10. 游标的写法

declare @tempShoppingCart table (ProductId int, Quantity int) insert into @tempShoppingCart (ProductId, Quantity) select ProductId, Quantity from ShoppingCart where UserGuid = @UserGuid declare @productId int declare @quantity int declare tempCartCursor cursor for select ProductId, Quantity from @tempShoppingCart open tempCartCursor SqlServer fetch next from tempCartCursor into @productId, @quantity while @@FETCH_STATUS = 0 begin update Product set SellCount = SellCount + @quantity where productId = @productId fetch next from tempCartCursor into @productId, @quantity end close tempCartCursor deallocate tempCartCursor declare m_done int default 0; declare m_sectionId int; declare m_newsId int; declare _cursor_SN cursor for select sectionid, newsid from _temp_SN; MySql declare continue handler for not found set m_done = 1; create temporary table _temp_SN select sectionid, newsid from SectionNews group by sectionid, newsid having count(*) > 1; open _cursor_SN; while( m_done = 0 ) do fetch _cursor_SN into m_sectionId, m_newsId; if( m_done = 0 ) then -- 具体的处理逻辑 end if; end while; close _cursor_SN; drop table _temp_SN; 注意:为了提高性能,通常在表变量上打开游标,不要直接在数据表上打开游标。 11. 分页的处理

create procedure GetProductByCategoryId( @CategoryID int, @PageIndex int = 0, @PageSize int = 20, @TotalRecords int output ) as begin declare @ResultTable table ( RowIndex int, ProductID int, ProductName nvarchar(50), SqlServer CategoryID int, Unit nvarchar(10), UnitPrice money, Quantity int ); insert into @ResultTable select row_number() over (order by ProductID asc) as RowIndex, p.ProductID, p.Quantity from Products as p where CategoryID = @CategoryID; select @TotalRecords = count(*) from @ResultTable; select * p.ProductName, p.CategoryID, p.Unit, p.UnitPrice,

from @ResultTable where RowIndex > (@PageSize * @PageIndex) and RowIndex <= (@PageSize * (@PageIndex+1)); end; 当然,SqlServer中并不只有这一种写法,只是这种写法是比较常见而已。 create procedure GetProductsByCategoryId( in _categoryId int, in _pageIndex int, in _pageSize int, out _totalRecCount int ) begin set @categoryId = _categoryId; set @startRow = _pageIndex * _pageSize; MySql set @pageSize = _pageSize; prepare PageSql from 'select sql_calc_found_rows * from product where categoryId = ? order by ProductId desc limit ?, ?'; execute PageSql using @categoryId, @startRow, @pageSize; deallocate prepare PageSql; set _totalRecCount = found_rows(); end MySql与SqlServer的差别实在太多,以上只是列出了我认为经常在写存储过程中会遇到的一些具体的差别之处。

去年我将一些MySql的常用函数作了一番整理

本文来源:https://www.bwwdw.com/article/w7bo.html

Top