嵌套游标,虽然循环SQL
问题描述:
我想插入数据到两个表(在一次性100到150行在两个表上)。第一个表主键具有第二个表外键的引用.I读取光标存在问题@@ Fetch_Status是全局变量。在Cursor或While Loop或任何其他表格中循环和执行数据插入的最佳方法是哪种。嵌套游标,虽然循环SQL
CREATE TABLE Table1
(
FirstTablePK [int] NOT NULL, --Mannual Increment(Not Identity)
Description [varchar](100) NOT NULL,
CONSTRAINT PK_Table1 PRIMARY KEY CLUSTERED (FirstTablePK)
)
CREATE TABLE Table2
(
SecondTablePK [int] NOT NULL, --Mannual Increment(Not Identity)
FirstTablePK [int] NOT NULL, -- Foreign Key Reference with Table1
Description [varchar](100) NOT NULL,
CONSTRAINT PK_Table2 PRIMARY KEY CLUSTERED (SecondTablePK),
CONSTRAINT FK_Table1 FOREIGN KEY (FirstTablePK) REFERENCES Table1(FirstTablePK)
)
在此先感谢。 Hari
答
光标通常不用于查找外键。使用基于集合的查询更快,更容易:
insert into SaleOrder
(remarks, product_id, customer_id, ...)
select 'please deliver fast'
, (select id from Products where name = 'Car Oil')
, (select id from Customers where name = 'India Corp')
, ...
几乎不可能回答这样的问题。请显示您的表格结构,一些示例数据,您尝试实现的结果以及迄今为止尝试的结果。 – Mureinik
根据性能而循环是最好的,而不是光标... –
嗨Mureinik我添加了表结构。 –