SQL 2005 用IP连接时 提示发生内部连接致命错误 这是为啥?我重装了SQL server2005后还是这样 求解答

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 2005 用IP连接时 提示发生内部连接致命错误 这是为啥?我重装了SQL server2005后还是这样 求解答相关的知识,希望对你有一定的参考价值。

无法连接到 192.168.6.202。

===================================

内部连接致命错误。 (System.Data)

------------------------------
程序位置:

在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
在 System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
在 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
在 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.SqlClient.SqlConnection.Open()
在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ObjectExplorer.ValidateConnection(UIConnectionInfo ci, IServerType server)
在 Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()

参考技术A 估计你的服务没有启动,你去服务里面找到MSSQLSERVER,将他启动! 参考技术B 卸载完后,删除注册表。。再次安装看看

对缺失数据进行内部连接时的 SQL 删除

【中文标题】对缺失数据进行内部连接时的 SQL 删除【英文标题】:SQL Delete on inner join on MISSING data 【发布时间】:2014-05-01 21:25:54 【问题描述】:

我的问题与SQL DELETE with INNER JOIN 几乎相同;但我想在不相等时删除!

我的问题简介: 有2个表,bus_stops,bus_routes;

bus_routes id, bus_route_id,..other columns..
bus_stops id, bus_route_id,..other columns..

部分路线已被删除,但仍有公交车站,我也需要删除它们。意思是,我只需要删除没有关联公交路线的 bus_stops!

意思是这样的:

DELETE bs.* FROM bus_stops AS bs 
INNER JOIN bus_routes AS br 
ON bs.bus_route_id <> br.bus_route_id

但是上面的代码肯定不行。

【问题讨论】:

【参考方案1】:

你应该使用LEFT JOIN,下面的查询会起作用:

DELETE bs.*  
FROM bus_stops AS bs 
LEFT JOIN bus_routes AS br 
ON bs.bus_route_id = br.bus_route_id
WHERE br.bus_route_id IS NULL

【讨论】:

谢谢,Eduardo :) 解决方案非常简单,我错过了 :)【参考方案2】:

SQL 中的连接首先是两个表的笛卡尔积。这意味着表 A 的每条记录都与表 B 的每条记录相结合。然后,连接条件通过删除与条件不匹配的记录来减少记录。

如果您使用不等于 () 的 INNER JOIN,如果您至少有不同的值,则每条记录都将被删除。一个小例子:

Table A | B     Table C | D
=============   =============
        | 1             | 1
        | 2             | 2

A X B 的笛卡尔积是:

  | B | D
==========
  | 1 | 1
  | 1 | 2
  | 2 | 1
  | 2 | 2

如果您现在使用 B C 来选择值,结果将是:

  | B | D
==========
  | 1 | 2
  | 2 | 1

这将删除两条记录。

作为一种解决方案,尝试外部连接或子查询。

示例(子查询):

DELETE FROM C WHERE NOT EXISTS(SELECT * FROM A WHERE A.B = C.d)

示例(外部连接):

DELETE FROM C LEFT JOIN A ON C.D = A.B WHERE A.B IS NULL

【讨论】:

需要在LEFT JOIN后面加上ON子句

以上是关于SQL 2005 用IP连接时 提示发生内部连接致命错误 这是为啥?我重装了SQL server2005后还是这样 求解答的主要内容,如果未能解决你的问题,请参考以下文章

如何远程连接sqlserver,提示是“不存在或访问被拒绝”

连接SQL2005出现SQL Server 无法连接到服务器 提示 服务器:消息11,级别16,状态1 怎么解决啊

SQL2005, 在连接数据库引擎时,用windows身份验证时可以正常连接上,但是用Sql身份验证就连接不上。

PowerDesigner12连接database时候出现这个错误提示,连接的SQL2005.

访问前端 SQL 后端安全连接

提示SQL server不存在或拒绝访问怎么办?