pymssql._pymssql.OperationalError: (18456, b"\xe7\x94\xa8\xe6\x88\xb7 'sa' \xe7\x99\xbb\xe5\xbd\x95\xe5\xa4\xb1\xe8\xb4\xa5\xe3\x80\x82DB-Lib error message 20018, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (127.0.0.1)\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (127.0.0.1)\n")
时间: 2023-05-21 16:04:36 浏览: 403
这是一个数据库连接失败的错误消息,可能是由于用户名或密码错误、服务器未启动或网络连接故障等问题导致的。您可以检查用户名和密码是否正确、确认服务器已启动或尝试重新连接网络来解决问题。如果问题仍然存在,您可以查看 SQL Server 的错误消息以获取更多详细信息。
相关问题
pymssql._pymssql.OperationalError: (6115, b'KILL command cannot be used inside user transactions.DB-Lib err
这个错误提示意味着您不能在用户事务内使用KILL命令。要解决这个问题,您可以尝试以下方法:
1. 提交或回滚当前的用户事务:
在执行KILL命令之前,使用`conn.commit()`或`conn.rollback()`提交或回滚当前的用户事务。这将结束用户事务,然后您可以执行KILL命令。
```python
conn = pymssql.connect(server='服务器地址', user='用户名', password='密码', database='数据库名')
cursor = conn.cursor()
# 提交或回滚当前的用户事务
conn.commit() # 或者使用 conn.rollback()
# 执行终止进程的SQL语句
process_id = 12345 # 要终止的进程ID
cursor.execute(f'KILL {process_id}')
conn.commit()
cursor.close()
conn.close()
```
2. 使用另一个连接来执行KILL命令:
如果您无法在当前的连接中解决问题,可以尝试使用另一个连接来执行KILL命令。创建一个新的连接对象,并使用该对象执行KILL命令。
```python
conn = pymssql.connect(server='服务器地址', user='用户名', password='密码', database='数据库名')
cursor = conn.cursor()
# 创建新的连接对象
conn_kill = pymssql.connect(server='服务器地址', user='用户名', password='密码', database='数据库名')
cursor_kill = conn_kill.cursor()
# 执行终止进程的SQL语句
process_id = 12345 # 要终止的进程ID
cursor_kill.execute(f'KILL {process_id}')
conn_kill.commit()
cursor_kill.close()
conn_kill.close()
cursor.close()
conn.close()
```
请注意,以上方法仅适用于解决用户事务内无法执行KILL命令的情况。确保您了解要终止的进程的影响和后果,并谨慎使用KILL命令。
File "src\pymssql\_pymssql.pyx", line 479, in pymssql._pymssql.Cursor.execute sqlalchemy.exc.OperationalError: (pymssql._pymssql.OperationalError) (103, b"The identifier that starts with ''imgwcs2.soufunimg.com/viewimage/house/2021_09/24/1c3ad01e-df24-4f1a-bf67-0bb211d83dab/1400x1050.png', 'imgwcs2.soufunimg.com/vi' is too long. Maximum length is 128.DB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\n")
这个错误通常是由于 SQL Server 中的列长度限制导致的。根据错误消息,似乎您正在尝试将一个太长的标识符插入到一个列中,而该列的最大长度为128。
要解决这个问题,您可以尝试以下几种方法:
1. 缩短标识符的长度,以符合列长度的限制。
2. 将标识符分成更小的部分,并将它们分别插入到多个列中。
3. 扩展目标列的长度限制,以便可以容纳更长的标识符。请注意,这可能需要对表结构进行更改,因此请谨慎操作。
4. 如果您正在使用 SQLAlchemy 进行查询,可以尝试使用 `text()` 函数将查询字符串作为文本传递,而不是作为参数传递。这可以防止 SQLAlchemy 尝试将查询字符串转换为参数,从而导致标识符过长的问题。
希望这些提示可以帮助您解决问题。
阅读全文