在 SQL 中,可以使用游標(Cursor)來逐行處理數據,并根據需要執行批量插入。以下是一個簡單的示例,展示了如何使用游標將數據從一個表復制到另一個表。
首先,創建兩個表:source_table 和 destination_table。
CREATE TABLE source_table (
id INT PRIMARY KEY,
name VARCHAR(255),
age INT
);
CREATE TABLE destination_table (
id INT PRIMARY KEY,
name VARCHAR(255),
age INT
);
接下來,向 source_table 插入一些示例數據:
INSERT INTO source_table (id, name, age) VALUES (1, 'Alice', 30);
INSERT INTO source_table (id, name, age) VALUES (2, 'Bob', 25);
INSERT INTO source_table (id, name, age) VALUES (3, 'Charlie', 35);
現在,使用游標將數據從 source_table 復制到 destination_table。
-- 聲明游標
DECLARE @id INT;
DECLARE @name VARCHAR(255);
DECLARE @age INT;
DECLARE cur CURSOR FOR SELECT id, name, age FROM source_table;
-- 打開游標
OPEN cur;
-- 獲取游標中的下一行數據
FETCH NEXT FROM cur INTO @id, @name, @age;
-- 當游標不為空時,執行批量插入操作
WHILE @@FETCH_STATUS = 0
BEGIN
-- 插入數據到 destination_table
INSERT INTO destination_table (id, name, age) VALUES (@id, @name, @age);
-- 獲取游標中的下一行數據
FETCH NEXT FROM cur INTO @id, @name, @age;
END;
-- 關閉游標
CLOSE cur;
-- 釋放游標資源
DEALLOCATE cur;
現在,destination_table 應該包含與 source_table 相同的數據。你可以使用以下查詢進行驗證:
SELECT * FROM destination_table;
這個示例僅用于演示如何使用游標進行批量插入。在實際應用中,你可能需要根據具體需求調整代碼。