我是否有任何替代匹配哈希或使用游标?

时间:2012-10-25 23:12:01

标签: sql cursor

仍然是sql开发的新手,但学习速度很快。

这个场景将通过实体框架解决,但这不是一个选项。

需要将数据插入两个表中。下面描述了这种情况。

主表有一个标识密钥,当与插入密钥的记录相关的数据被插入时,子表也需要该密钥。

源信息来自其他几个表。我无法更改Main或Sub表结构。

我试图避免使用游标,但我没有看到任何替代方案。

我尝试将输出inserted.main_id用于#temp1 - 这有效,但我找不到将Sub_ID放入该临时表的方法。 Sub_ID来自源。

我的工作方式是将数据插入Main表,然后将源中的哈希与Main表匹配,然后将Main_ID插入Sub表中,并附带相应的Sub_ID。

实施例

TABLE MAIN    
Main_ID    PK, bigint,not null - identity
FirstName    varchar(15) not null
LastName    varchar(15) not null
Misc1    varchar(15)null
Misc2    varchar(15) null
Misc3    varchar(15) null

TABLE SUB    
Main_ID    PK,FK,bigint, not null
Sub_ID    int null
Misc4    varchar(15)
Misc5    varchar(15)
Misc6    varchar(15)

有没有办法将“Sub_ID”和“output inserted.main_id”一起捕获到临时表中?

现在我正在做的是匹配源中的哈希值和插入到主表中的记录,以获取将插入到子表中的Main_ID。

如果我可以在主表中生成Main_ID时将Sub_ID捕获到临时表中,则该过程会快得多。我想避免使用光标,但我认为这是我现在最好的选择。

0 个答案:

没有答案
相关问题