0
データベースに挿入して挿入したレコードをコードに戻す必要がある(> 1)レコードがあります(ID列の新しく形成されたIDとともに)。私はPythonコードからSQL Serverにレコードを挿入するための呼び出しを行う必要があります。 私はこれをデータベースへの一回の呼び出しですべて実行したいと思います。どうしたらいいですか?ID列の値を返す
データベースに挿入して挿入したレコードをコードに戻す必要がある(> 1)レコードがあります(ID列の新しく形成されたIDとともに)。私はPythonコードからSQL Serverにレコードを挿入するための呼び出しを行う必要があります。 私はこれをデータベースへの一回の呼び出しですべて実行したいと思います。どうしたらいいですか?ID列の値を返す
テーブルに複数のレコードを挿入する場合は、INSERTステートメントのOUTPUT句を使用して、新しく挿入されたデータにアクセスできます。ここ
MSDN Documentationは、いくつかのコードを実証することである。
/* Test table to demonstrate */
CREATE TABLE Test (ID INT IDENTITY(1, 1), Value VARCHAR(255));
GO
-- I'm using a table valued parameter to pass in the recordset
CREATE TYPE InputTable AS TABLE (Value VARCHAR(255));
GO
-- Test procedure to demonstrate
CREATE PROCEDURE dbo.InsertTest
@In InputTable READONLY -- Pass in a recordset to insert
AS
SET NOCOUNT ON
-- Create a temp table to return the results
CREATE TABLE #Test (ID INT, Value VARCHAR(255));
-- Insert the data into the test table
INSERT INTO Test (Value)
OUTPUT inserted.ID, inserted.Value INTO #Test -- Output the newly inserted records including the new ID into the temp table
SELECT *
FROM @In;
-- Return the inserted data including the new ID
SELECT * FROM #Test;
DROP TABLE #Test;
GO
-- Declare a variable that references the input
DECLARE @Input AS InputTable;
-- Add data to the variable
INSERT INTO @Input (Value)
SELECT name
FROM sys.objects;
-- Execute the test procedure
EXEC InsertTest @Input;
GO
DROP TABLE Test;
DROP PROCEDURE InsertTest;
DROP TYPE InputTable;
上記のSQLストアド・プロシージャです。 私は、SQL文と値(リストのリスト)を入力として受け付け、挿入されたレコードをPythonで作成したIDと一緒に返すメソッドを実装しようとしています –
これはOUTPUT文の使い方の例です。ストアドプロシージャにラップする必要はありません。 –