Lit*_*din 3 sql sql-server cursor
我目前正在使用sql游标查找表来更新另一个表.我有一张包含很多短语的表格.如果任何这些短语属于更新表中的任何列,我想更新另一个表来设置1.我正在使用游标和字符来查找短语.光标需要很长时间,我只是想知道我是否可以使用其他任何东西而不是光标.谢谢.我正在使用sql server,这是代码
declare @word varchar(max)
declare @aCursor cursor for
SELECT col from table
open acursor
fetch next from acursor into @word
while @@fetch_status=0
begin
SET @word = '' + @word + ''
UPDATE updatetable
SET updatecol = 'y'
FROM updatetable u, tableb b
WHERE u.id = b.id AND (CHARINDEX(@word, u.name) > 0 OR CHARINDEX(@word, u.city) >
fetch next from acursor into @word
end
close acursor
deallocate acursor
Run Code Online (Sandbox Code Playgroud)
请看一下:http://weblogs.sqlteam.com/jeffs/archive/2008/06/05/sql-server-cursor-removal.aspx,它可以帮助您实现目标.然而,我已经完成了这个问题的完整问题,对于单独的行操作,游标是要走的路,性能与其他方法大致相同,可读性比其他方法好10倍,使得维护代码变得更加容易.
但是,我没有足够的细节似乎理解为什么你不能用更新语句来解决这个问题.
| 归档时间: |
|
| 查看次数: |
7916 次 |
| 最近记录: |