很奇怪不确定我是否正确但输出很奇怪:
select *
into #TempScormModuelsTable
from Scorm.ScormModules
select * from #TempScormModuelsTable
DECLARE @ScormModuleId int
DECLARE db_cursor CURSOR FOR
SELECT ScormModuleId from #TempScormModuelsTable
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @ScormModuleId
WHILE @@FETCH_STATUS = 0
BEGIN
update #TempScormModuelsTable
set Directory = REPLACE(Directory,'SCORM','ScormPackages'),
RelativeHtmlPath = REPLACE(RelativeHtmlPath,'SCORM','ScormPackages')
FETCH NEXT FROM db_cursor INTO @ScormModuleId
END
--drop table #TempScormModuelsTable
CLOSE db_cursor
DEALLOCATE db_cursor
然后在列目录中我有这个! E:\的Inetpub \ www.sellandprosper.com \ ScormPackagesPackagesPackagesPackagesPackagesPackagesPackagesPackages \ SellingOfficeWithNewPCs
" ScormPackagesPackagesPackagesPackagesPackagesPackagesPackagesPackages"是" SCORM"而我只想把它作为ScormPackages..yikes
任何帮助?
答案 0 :(得分:0)
那不是SQL。
你需要更接近......
UPDATE
Scorm.ScormModules_backup
SET
Directory = REPLACE(Directory, 'SCORM', 'ScormPackages'),
RelativeHtmlPath = REPLACE(RelativeHtmlPath, 'SCORM', 'ScormPackages')
SQL已基于设置,这自然会将其应用于每一行(非常类似于您的FOREACH伪代码)。
我不确定您的WHERE
条款是做什么的,但您也可以将WHERE
条款附加到UPDATE
。
修改强>
好的,你刚刚完全改变了问题中的代码。
现在,您正在查看游标,但正在对整个表进行更新。
因此,如果您有8行,则执行8次更新。但每次你对表中的每一行都这样做。