繁体   English   中英

直接在数据库上从python执行SQL Server存储过程

[英]Execute SQL Server stored procedure from python on database directly

我想使用 Python 在数据库上运行现有的 SQL Server 存储过程。 澄清一下,我不想在 Python 中获得输出。 我希望输出直接保存在数据库本身中。

我使用 pymssql 使用以下代码连接到数据库:

storedProc = "Exec TEST;"
cursor.execute( storedProc )

这是我的程序代码:

CREATE PROCEDURE dbo.TEST
as
set nocount on

IF OBJECT_ID('tempdb..#A', 'U')IS not NULL DROP TABLE #A
CREATE TABLE #A
([id]           [INT] identity(1,1), 
 [CustomerName] [VARCHAR](30) NULL, 
 [OrderCount]   [INT] NULL
)
ON [PRIMARY]

Insert into #A ([CustomerName],[OrderCount]) values('Rajjjj',22),('Kusum',3),('Akshita',4),('John',5),('Dan',6)
IF OBJECT_ID('dbo.TEST_A', 'U')IS NULL
CREATE TABLE dbo.TEST_A
(
 [CustomerName] [VARCHAR](30) NULL, 
 [OrderCount]   [INT] NULL
);
truncate table  dbo.TEST_A
insert into dbo.TEST_A

这段代码运行了程序,但是输出返回给了 Python,这不是我想要的。

然后,发送到数据库的查询必须执行插入操作。 考虑一个名为 [proc_output] 的表与过程的返回具有相同的结构,代码将是:

storedProc = """
insert into proc_output
    Exec Procedure_Name;
"""
cursor.execute( storedProc )

正如我在帖子中所描述的,我的代码中缺少conn.commit()行,如下面的帖子中所述: 链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM