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()
对缺失数据进行内部连接时的 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身份验证就连接不上。