使用SQL中的CURSOR更新一个表的记录,同时从另一个表获取值

时间:2019-02-20 06:57:55

标签: sql-server tsql

我想通过从designation_id表中获取Employee的值来更新表designation_id中的designation,其中指定表中的指定名称等于员工中的指定名称表 Following code is just updating one value using cursor

1 个答案:

答案 0 :(得分:2)

您在select中仅获得一条记录。光标在提供的一行中循环,并执行您想要的操作

游标的工作原理:

您可以通过执行一些选择为光标提供一些数据。 现在,您的游标会遍历所有记录并执行您打算执行的操作。

SqlServer中的示例:

DECLARE Cursor scroll cursor for 

SELECT top 500 ID, demoID, demosecondID
FROM Table  
WHERE condition = @Variable

OPEN Cursor  

fetch next from Cursor into @ID, @demoId,@demosecondId

WHILE @@fetch_status = 0  
    BEGIN  
         -- Your intended operation
         fetch next from Cursor into @ID, @demoId,@demosecondId
    END
Close Cursor  
Deallocate Cursor 

根据您的要求,如何使用简单联接?

UPDATE
    Employee
SET
    Employee.DesignationID = Designation.DesignationID 
FROM
    Employee
INNER JOIN
    Designation
ON 
    Employee.designation= Designation.Name;