多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 數(shù)據(jù)庫 > Sqlserver > 一句SQL實(shí)現(xiàn)獲取自增列操作

一句SQL實(shí)現(xiàn)獲取自增列操作

來源:程序員人生   發(fā)布時(shí)間:2013-10-08 23:58:17 閱讀次數(shù):4173次

今天做了一個(gè)應(yīng)用,對TAB_1表進(jìn)行插入操作的時(shí)候,需要獲取自增ID的值,插入到TAB_2里面,隱隱約約記得SQL里面有個(gè)全局變量@@IDENTITY可以實(shí)現(xiàn)這樣的業(yè)務(wù)需要,憑著感覺寫了下面的SQL語句。
string sql = "INSERT INTO TAB_1(COL_1) VALUES('VALUE_1') INSERT INTO TAB_2(COL_1) VALUES(SELECT @@IDENTITY)"
結(jié)果報(bào)錯(cuò).....看來第一感覺還是錯(cuò)了。

GOOGLE找一下,搜索了關(guān)鍵字“SQL 獲取自增列 插入”結(jié)果搜出N多答案,大概可以分成幾類:
1.對TAB_1進(jìn)行插入操作后,通過SqlHeper.ExecuteScalar執(zhí)行"SELECT @@IDENTITY"這樣的SQL語句來返回一個(gè)Object,這樣需要把自增列取到程序中再進(jìn)行拼接SQL處理。

2.還看到一猛男這樣寫的:
string sql = "INSERT INTO TAB_1(COL_1) VALUES('VALUE_1') INSERT INTO TAB_2(COL_1) VALUES(SELECT CAST(@@SCOPE_IDENTITY() AS INT))" 結(jié)果一運(yùn)行還是報(bào)錯(cuò)。

思考:這個(gè)時(shí)候站起來倒茶,思考下,難道想一句SQL語句不能實(shí)現(xiàn)嗎?突然想到以前看PetShop的源碼的時(shí)候,有類似的實(shí)現(xiàn)的。
string sql = "INSERT INTO TAB_1(COL_1) VALUES('VALUE_1') DECLARE @UID INT SELECT @UID = SCOPE_IDENTITY() INSERT INTO TAB_2(COL_1) VALUES(@UID)"
這時(shí)候懷著激動的心情F5刷新,運(yùn)行成功沒有報(bào)錯(cuò),檢查數(shù)據(jù)庫插入TAB_1時(shí)生成的自增主鍵,已經(jīng)插入到TAB_2中去了,業(yè)務(wù)邏輯實(shí)現(xiàn)實(shí)現(xiàn)的同時(shí),也達(dá)到我的期望值,Perfect...懷著激動的心情寫下了這篇日志,記錄下心情。最后就是附上一點(diǎn)網(wǎng)上收集的資料。
--------------------------------------------------------------------------------------------------------------------------------------------
@@IDENTITY
返回最后插入的標(biāo)識值。

語法
@@IDENTITY

返回類型
numeric

注釋
在一條 INSERT、SELECT INTO 或大容量復(fù)制語句完成后,@@IDENTITY 中包含此語句產(chǎn)生的最后的標(biāo)識值。若此語句沒有影響任何有標(biāo)識列的表,則 @@IDENTITY 返回 NULL。若插入了多個(gè)行,則會產(chǎn)生多個(gè)標(biāo)識值,@@IDENTITY 返回最后產(chǎn)生的標(biāo)識值。如果此語句激發(fā)一個(gè)或多個(gè)執(zhí)行產(chǎn)生標(biāo)識值的插入操作的觸發(fā)器,則語句執(zhí)行后立即調(diào)用 @@IDENTITY 將返回由觸發(fā)器產(chǎn)生的最后的標(biāo)識值。若 INSERT 或 SELECT INTO 語句失敗或大容量復(fù)制失敗,或事務(wù)被回滾,則 @@IDENTITY 值不會還原為以前的設(shè)置。

在返回插入到表的 @@IDENTITY 列的最后一個(gè)值方面,@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函數(shù)類似。

@@IDENTITY 和 SCOPE_IDENTITY 將返回在當(dāng)前會話的所有表中生成的最后一個(gè)標(biāo)識值。但是,SCOPE_IDENTITY 只在當(dāng)前作用域內(nèi)返回值,而 @@IDENTITY 不限于特定的作用域。

IDENT_CURRENT 不受作用域和會話的限制,而受限于指定的表。IDENT_CURRENT 返回任何會話和任何作用域中為特定表生成的標(biāo)識值。有關(guān)更多信息,請參見 IDENT_CURRENT。

示例
下面的示例向帶有標(biāo)識列的表中插入一行,并用 @@IDENTITY 顯示在新行中使用的標(biāo)識值。

INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'
---------------------------------
從SQL的幫助文檔中直接COPY過來的,其實(shí)微軟的幫助文檔是最好的老師,最好學(xué)會直接查看幫助文檔.

轉(zhuǎn)自:http://www.cnblogs.com/JavCof/

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 日韩大片免费在线观看 | 国产精品久久一区一区 | 亚洲小视频在线 | 2020国产成人精品视频人 | 亚洲欧美日韩人成 | 中文字幕丰满乱码 | 欧美xxxxx九色视频免费观看 | 动漫一级毛片 | 最新国产大片高清视频 | 精品一区二区三区四区乱码 | 五月天亚洲视频 | 91久久亚洲精品国产一区二区 | 在线观看欧美亚洲 | 日本久久综合 | 最近中文国语字幕在线播放视频 | 成人性色生活片免费看爆迷你毛片 | 亚洲精品亚洲人成在线 | 欧美 国产 小说 另类 | 欧美人与性禽xxxx | 欧美wwwxxxx | 国产欧美精品一区二区三区四区 | 自拍偷拍欧美 | 国内一区| 亚洲图片 自拍 | 亚洲视频在线一区二区三区 | 国产精品看片 | 国产a不卡 | 欧美亚洲综合视频 | 亚洲最大色视频 | 毛片免费永久不卡视频观看 | 中国国产成人精品久久 | 国产成人经典三级在线观看 | 91久久精品一区二区三区 | 日韩精品在线播放 | 波多野结衣手机视频一区 | 337p欧洲日本大胆艺术 | 中文字幕一区二区三区在线播放 | 欧美国产亚洲精品a第一页 欧美国产亚洲精品高清不卡 | 国产中日韩一区二区三区 | 91精品国产综合久久久久 | 国产成人精品福利网站在线 |