国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

一個update的小故事

2024-07-21 02:48:28
字體:
來源:轉載
供稿:網友
一個update的小故事

偶爾測試了一段小代碼,寫個循環

if object_id('tempdb..#TB') is not null    drop table #TBgocreate table #TB(    ID int)insert into #TB (ID)select 1union allselect 2union allselect 3union allselect 4union allselect 5--代碼1declare @i int set @i = 1while @i < 5begin    update #TB set ID = ID,@i = @i + 1    select @iend
--代碼2set @i = 1while @i < 5begin    update #TB set ID = ID   set @i = @i + 1    select @iend

本來我覺得2段代碼是一致的。都是執行了5次,那么@i = 6

但實際上,代碼2是符合上述情況,執行了5次,@i = 6

但代碼1 卻只是執行了1次,@i = 6

對于這種情況,我只能猜測是update本身的機制。對于代碼1,每一條影響記錄,那么便執行一次@i = @i + 1。所以在一次循環里面就執行了5次,達到了while的閥值,跳出循環。

而對于代碼2,則沒有這個限制,順序執行。

當然這只是個人猜想,還請各位指導。

這么一個簡單的語句,一個不留神都踩坑,看來Sql Server里面的故事真不少啊


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和顺县| 辰溪县| 濉溪县| 元朗区| 汪清县| 南漳县| 横峰县| 定陶县| 尉犁县| 天气| 乳山市| 彰化县| 晋城| 兴仁县| 元谋县| 正阳县| 滦平县| 临沧市| 青田县| 城固县| 泰和县| 化德县| 万载县| 团风县| 新源县| 含山县| 扶绥县| 湟中县| 忻州市| 靖江市| 青岛市| 广灵县| 大城县| 陇川县| 无锡市| 大荔县| 稻城县| 三明市| 白城市| 忻城县| 常宁市|