2015-07-20 98 views
-1

我想插入数据到两个表(在一次性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

+0

几乎不可能回答这样的问题。请显示您的表格结构,一些示例数据,您尝试实现的结果以及迄今为止尝试的结果。 – Mureinik

+0

根据性能而循环是最好的,而不是光标... –

+0

嗨Mureinik我添加了表结构。 –

回答

0

光标通常不用于查找外键。使用基于集合的查询更快,更容易:

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') 
,  ...