【发布时间】:2021-09-17 16:03:53
【问题描述】:
每当我尝试在数据库上创建新用户时,都会收到以下错误。
Traceback (most recent call last):
File "src\pymssql\_pymssql.pyx", line 460, in pymssql._pymssql.Cursor.execute
File "src\pymssql\_mssql.pyx", line 1104, in pymssql._mssql.MSSQLConnection.execute_query
File "src\pymssql\_mssql.pyx", line 1135, in pymssql._mssql.MSSQLConnection.execute_query
File "src\pymssql\_mssql.pyx", line 1268, in pymssql._mssql.MSSQLConnection.format_and_run_query
File "src\pymssql\_mssql.pyx", line 1806, in pymssql._mssql.check_cancel_and_raise
File "src\pymssql\_mssql.pyx", line 1852, in pymssql._mssql.raise_MSSQLDatabaseException
pymssql._mssql.MSSQLDatabaseException: (102, b"Incorrect syntax near 'CREATE USER [test_login] FOR LOGIN [test_login] WITH DEFAULT_SCHEMA=[dbo]'.DB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\n")
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "test_sqlserver.py", line 60, in <module>
createUsers(row[0][:-1], target_server, target_database)
File "test_sqlserver.py", line 44, in createUsers
cursor.execute('%s', sqlStatement)
File "src\pymssql\_pymssql.pyx", line 475, in pymssql._pymssql.Cursor.execute
pymssql._pymssql.ProgrammingError: (102, b"Incorrect syntax near 'CREATE USER [test_login] FOR LOGIN [test_login] WITH DEFAULT_SCHEMA=[dbo]'.DB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\n")
下面是我目前的代码。
def createUsers(sqlStatement, server, database):
conn = pymssql.connect(server=server, database=database)
cursor = conn.cursor()
cursor.execute('%s', sqlStatement)
target_server = 'MYServer'
target_database = 'MYDatabase'
sqlStatement = 'CREATE USER [test_login] FOR LOGIN [test_login] WITH DEFAULT_SCHEMA=[dbo]'
createUsers(sqlStatement, target_server, target_database)
我不确定为什么会收到此错误,因为我可以直接在数据库上执行 SQL 语句而不会出现任何问题。而且我还可以使用pymssql从数据库中查询信息。但是每当我尝试在数据库上创建新用户时,我都会不断收到此错误。有谁熟悉这个吗?
【问题讨论】:
标签: python sql sql-server pymssql