I need to update a SQL Server database using a stored procedure and a table as a parameter using PYODBC
. The stored procedure should be fine but I'm not sure about the syntax used in the Python script:
Python:
import pandas as pd
import pyodbc
# Create dataframe
data = pd.DataFrame({
'STATENAME':[state1, state2],
'COVID_Cases':[value1, value2],
})
data
conn = pyodbc.connect('Driver={SQL Server};'
'Server=mydb;'
'Database=mydbname;'
'Username=username'
'Password=password'
'Trusted_Connection=yes;')
cursor = conn.cursor()
params = ('@StateValues', data)
cursor.execute("{CALL spUpdateCases (?,?)}", params)
Stored procedure:
[dbo].[spUpdateCases]
@StateValues tblTypeCOVID19 readonly,
@Identity int out
AS
BEGIN
INSERT INTO tblCOVID19
SELECT * FROM @StateValues
SET @Identity = SCOPE_IDENTITY()
END
Here is my user-defined type:
CREATE TYPE [dbo].[tblTypeCOVID19] AS TABLE
(
[ID] [int] NOT NULL,
[StateName] [varchar](50) NULL,
[COVID_Cases] [int] NULL,
[DateEntered] [datetime] NULL
)
I'm not getting any error when executing the Python script.