国产探花免费观看_亚洲丰满少妇自慰呻吟_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 中


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 米脂县| 葵青区| 和硕县| 托克逊县| 枝江市| 灵璧县| 通河县| 德令哈市| 西和县| 东山县| 汉源县| 望城县| 崇州市| 绍兴市| 泰和县| 兴隆县| 怀集县| 富顺县| 蚌埠市| 新干县| 荆门市| 沙雅县| 曲周县| 温泉县| 藁城市| 区。| 仪陇县| 江西省| 饶河县| 达孜县| 浦江县| 涿鹿县| 宜都市| 渭南市| 陆川县| 盖州市| 大名县| 当雄县| 环江| 松原市| 沾化县|