Мне нужно создать связанный сервер в MS SQL Server для 2 серверов AWS RDS, начиная с Python 2.7.Для этого я использую библиотеку pymssql .Команды SQL выполняются с клиентом SQL без проблем, создаются связанные серверы, к ним можно обращаться, которые существуют и могут использоваться.
Проблема возникает, когда вы выполняете создание SQL в Python (из экземпляра).В AWS Linux, в том же AZ), вы получите следующее сообщение об ошибке:
Simple SQL queries from python (such as a Select) work without problems using pymssql.
То же самое происходит, когда хранимая процедура создается в базе данных и вызывается из python, если в инструкциях по созданиюсвязанные серверы включаются, тогда та же самая ошибка получена.Если вы создадите процедуру в sql в python, результат будет похожим.
Кто-нибудь знает, как это сделать?Большое спасибо за помощь.
Команды Linkedserver:
EXEC master.dbo.sp_addlinkedserver @server = N'linkserver1', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'aa.bb.cc.dd';
EXEC master.dbo.sp_dropserver @server = N'linkserver1';
EXEC sys.sp_linkedservers;
Код Python:
**import pymssql
def main():
conn = pymssql.connect(server, user, clave, base)
cursor = conn.cursor()
cursor.execute("EXEC master.dbo.sp_addlinkedserver @server = N'RDSPrivate01', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'win-01.nnnnnn.us-west-1.rds.amazonaws.com'")
if __name__== "__main__":
main()**
Сообщение об ошибке:
cursor.execute ("EXEC master.dbo.sp_addlinkedserver @server = N'RDSPrivate01 ', @ srvproduct = N' ', @ provider = N'SQLNCLI', @ datasrc = N'win-01.nnnnnnnnnnn.us-west-1.rds.amazonaws.com' ") Файл" src / pymssql.pyx ", строка 468, в pymssql.Cursor.execute pymssql.OperationalError: (15002, «Процедура« sys.sp_addlinkedserver »не может быть выполнена внутри транзакции. Сообщение об ошибке DB-Lib 20018, серьезность 16: \ nОбщая ошибка SQL Server: проверка сообщений от SQL Server \ n")
Используемые ссылки: https://aws.amazon.com/blogs/database/implement-linked-servers-with-amazon-rds-for-microsoft-sql-server/
http://www.pymssql.org/en/stable/pymssql_examples.html#important-note-about-cursors