我有两个学生的表(使用Microsoft SQL Server 2008 R2标准版)。我需要编写一个程序,因此,如果第一个表有新的学生,第二个得到以及SQL:从1个表插入新记录到另一个
这并不工作更新,我不知道为什么:
CREATE PROCEDURE [dbo].[CHECK_NEW]
AS
begin transaction
declare @tempId int
declare @tempName varchar
DECLARE c1 CURSOR FOR
SELECT kId, kName
FROM table1
OPEN c1
FETCH NEXT FROM c1
INTO @tempId, @tempName
WHILE @@FETCH_STATUS = 0
BEGIN
if (SELECT sId FROM table2) NOT IN(@tempId)
insert into table(sId, name) values(@tempId, @tempName)
END
commit
在此先感谢
“这不工作” - 不是一个有用的描述。顺便说一句,你不需要使用游标... – 2013-05-09 07:17:36
@MitchWheat我只是没有添加任何东西,程序编译没有错误,但第二个表不更新wwhen我执行它,我不知道为什么 – user2336688 2013-05-09 07:20:00
为什么你扫描沃尔表吗?为什么不添加一个触发器(有它自己的问题)或从代码插入 - >只保留一个地方添加到表1,然后启动一个txn并执行此操作。否则,你可能会遇到这样的情况,如果db在加载 – tgkprog 2013-05-09 07:24:02