初期在公司主要是寫ASP,DB的部分涉入不深,單純是新增或修改資料表而已,之後才慢慢開始我的資料匯入人生,在一堆資料中打滾,既然要匯入資料當然開始常操作資料庫,覺得還是要多學學T-SQL的語法,有時會需要逐筆更新資料,能夠寫迴圈當然會方便很多啦,看完這些廢話再來就是主題了
使用CURSOR來跑迴圈,以下範例
DECLARE @RowID int
DECLARE @uid varchar(10)
DECLARE @sex varchar(4)
DECLARE temp_cursor CURSOR FOR
SELECT RowID, uid FROM tempTable
OPEN temp_cursor
FETCH NEXT FROM temp_cursor INTO @RowID, @uid
/*
@@FETCH_STATUS
0 FETCH 陳述式順利執行
-1 FETCH 陳述式失敗,或資料列超出結果集
-2 擷取的資料列已遺漏
*/
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sex=''
IF LEN(@uid)=8 SET @sex='公司'
IF LEN(@uid)=10 AND SUBSTRING(@uid,2,1)='1' SET @sex='男'
IF LEN(@uid)=10 AND SUBSTRING(@uid,2,1)='2' SET @sex='女'
IF @sex<>''
UPDATE tempTable SET sex=@sex WHERE RowID=@RowID
FETCH NEXT FROM temp_cursor INTO @RowID, @uid
END
CLOSE temp_cursor
DEALLOCATE temp_cursor
沒有留言:
張貼留言