2012-09-27 130 views
0

嘿傢伙這是一個更新PrevLoc字段的存儲過程..但我希望我的proc將upadate插入到不同的字段中我不希望這樣修改原始字段,因爲我仍然想保留它因爲它is.Could你們的幫助呢?我非常感謝所有it.Thanks更新存儲過程

ALTER PROC [dbo].[updateloc] 

AS 
UPDATE Stage.Loc 
SET PrevLoc=RTRIM(PrevLoc) 
UPDATE Stage.Loc 
SET PrevLoc = REPLACE(PrevLoc, substring(PrevLoc, LEN(PrevLoc) - 
     (CHARINDEX(' ', REVERSE(PrevLoc)))+ 1, LEN(PrevLoc)), dbo.parsLocat(PrevLoc))-- --this is a function that I use 


SET changedLoc=PrevLoc---this doesnt work 

GO 

回答

0

changeLoc在表中的列?

您只需要設置該屬性。

這些變化會留下PrevLoc根本不需要做任何修改,並處理成價值changeLoc

ALTER PROC [dbo].[updateloc] 

AS 
UPDATE Stage.Loc 
SET changeLoc=RTRIM(PrevLoc) 

UPDATE Stage.Loc 
SET changeLoc = REPLACE(changeLoc, substring(changeLoc, LEN(changeLoc) - 
     (CHARINDEX(' ', REVERSE(changeLoc)))+ 1, LEN(changeLoc)), dbo.parsLocat(changeLoc))-- --this is a function that I use 

GO 
+0

@JDwyer ......這是如此useful..it工作great.I很欣賞它。但是我有對於你來說還有一個問題。如果你看到第一個更新是爲了修剪太空而不是做兩個更新,有沒有辦法使用第一個變量並將其分配給函數。再次感謝所有.. – user1689111

+0

它可能更簡單把它作爲2更新。爲了結合這個你需要使用遊標。請記住,表中的每一行都會發生更新,所以不需要篩選/表查找,因此有兩個查詢不會產生太大的區別。 – JDwyer

+0

再次感謝..我確實很感激它..它確實有道理 – user1689111