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

首頁 > 開發 > 綜合 > 正文

SQLserver 2000分頁另類通用解決方案

2024-07-21 02:45:16
字體:
來源:轉載
供稿:網友

存儲過程分頁大都會用到這樣的語句
SELECT *,row_number() OVER(ORDER BY id DESC) AS rowNumber FROM
但是SQL2000 中不支持row_number() 需要使用 select ....into 配合臨時表和
IDENTITY (data_type [ , seed , increment ] ) AS column_name  來作為替代方案。
語句像下面這樣
SELECT *,identity(int,1,1) as rowNumber INTO #temp FROM  Article
但是如果 Article中有標識列的話就會報錯。
無法使用 SELECT INTO 語句將標識列添加到表 ?? 該表的列 ?? 已繼承了標識屬性。
網上找到大多數解決方案都是需要顯示指定源表的列的列表。
一般是使用Convert(int,identity_columnName) 或者使用SET IDENTITY_INSERT指令
這樣雖然可以解決問題但是不夠通用,而且但源表主鍵列名未知的情況下就無能為力了。
經過反復的百度和GOOGLE查閱相關資料后發現可以把上面的語句寫成下面這樣:
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


這樣就不會報錯了。

 另外通過

INSERT INTO #temp exec('SELECT * FROM PRoduct')

可以把動態構造的SQL插入到#temp 中


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辽宁省| 塘沽区| 开封县| 东兴市| 怀集县| 开原市| 大宁县| 肥乡县| 保定市| 驻马店市| 柳江县| 阜宁县| 定兴县| 永胜县| 阿巴嘎旗| 鄂温| 宜昌市| 九寨沟县| 牡丹江市| 黄陵县| 余姚市| 南木林县| 江陵县| 丹江口市| 公主岭市| 四子王旗| 修水县| 丽水市| 定远县| 从化市| 阳城县| 新昌县| 厦门市| 新邵县| 大厂| 德江县| 离岛区| 邢台市| 八宿县| 丰县| 林甸县|