SELECT *,row_number() OVER(ORDER BY id DESC) AS rowNumber FROM
但是SQL2000 中不支持row_number() 需要使用 select ....into 配合臨時(shí)表和
IDENTITY (data_type [ , seed , increment ] ) AS column_name? 來(lái)作為替代方案。
語(yǔ)句像下面這樣
SELECT *,identity(int,1,1) as rowNumber INTO #temp FROM? Article
但是如果 Article中有標(biāo)識(shí)列的話就會(huì)報(bào)錯(cuò)。
無(wú)法使用 SELECT INTO 語(yǔ)句將標(biāo)識(shí)列添加到表 ?? 該表的列 ?? 已繼承了標(biāo)識(shí)屬性。
網(wǎng)上找到大多數(shù)解決方案都是需要顯示指定源表的列的列表。
一般是使用Convert(int,identity_columnName) 或者使用SET IDENTITY_INSERT指令
這樣雖然可以解決問(wèn)題但是不夠通用,而且但源表主鍵列名未知的情況下就無(wú)能為力了。
經(jīng)過(guò)反復(fù)的百度和GOOGLE查閱相關(guān)資料后發(fā)現(xiàn)可以把上面的語(yǔ)句寫成下面這樣:
SELECT *,identity(int,1,1) as rowNumber INTO
#temp FROM (SELECT * FROM Article) AS newArticle
或則
SELECT T1.*,IDENTITY(INT,1,1)AS rowNumber INTO #temp FROM
?Article AS T1 JOIN Article AS T2 ON 1=2
這樣就不會(huì)報(bào)錯(cuò)了。
?另外通過(guò)
INSERT INTO #temp exec('SELECT * FROM Product')
可以把動(dòng)態(tài)構(gòu)造的SQL插入到#temp 中
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
