| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1871 人关注过本帖
标题:如何解决分页存储过程错误:提示当 IDENTITY_INSERT 设置为 OFF 时,不能向 ...
只看楼主 加入收藏
kira007
Rank: 2
等 级:论坛游民
帖 子:294
专家分:27
注 册:2007-6-28
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:4 
如何解决分页存储过程错误:提示当 IDENTITY_INSERT 设置为 OFF 时,不能向表#t1中的标识列插入显式值
CREATE PROCEDURE getProductPage
@iPageCount int OUTPUT, --总页数
@iPage int, --当前页号
@iPageSize int --每页记录数
as
    set nocount on
    begin
    --创建临时表
    create table #t (viewID int IDENTITY, --自增字段
    CategoryID varchar(255),
    Productname varchar(200),
    SerialNum varchar(200),
    KeyWord varchar(255),
    price varchar(50),
    BrandID int,
    Unit varchar(50),
    Pic varchar(255),
    Watermark int,
    IndexShow int,
    Special int
    )
   
    --向临时表中写入数据
    --set IDENTITY_INSERT #t ON
    insert into #t (viewID,CategoryID,Productname ,SerialNum,KeyWord,price,BrandID,Unit,Pic,Watermark,IndexShow,Special) select ID,CategoryID,Productname ,SerialNum,KeyWord,price,BrandID,Unit,Pic,Watermark,IndexShow,Special  from [Product]
   
   
    --取得记录总数
    declare @iRecordCount int
    set @iRecordCount = @@rowcount
   
    --确定总页数
    IF @iRecordCount%@iPageSize=0
        SET @iPageCount=CEILING(@iRecordCount/@iPageSize)
    ELSE
        SET @iPageCount=CEILING(@iRecordCount/@iPageSize)+1
        
    --若请求的页号大于总页数,则显示最后一页
    IF @iPage > @iPageCount
        SELECT @iPage = @iPageCount
        --确定当前页的始末记录
        
    DECLARE @iStart int --start record
    DECLARE @iEnd int --end record
   
    SELECT @iStart = (@iPage - 1) * @iPageSize
    SELECT @iEnd = @iStart + @iPageSize + 1
   
    --取当前页记录
    select *  from #t where viewID>@iStart and viewID<@iEnd
   
    --删除临时表
    DROP TABLE #t
    return @iRecordCount
    end
GO

搜索更多相关主题的帖子: IDENTITY INSERT OFF 提示 
2010-08-13 16:52
kira007
Rank: 2
等 级:论坛游民
帖 子:294
专家分:27
注 册:2007-6-28
收藏
得分:0 
我在
--创建临时表
    create table #t (viewID int IDENTITY, --自增字段
下面再加了一个字段
    Id  int,
同时修改了 insert into #t (viewID,CategoryID,Productname ,SerialNum,KeyWord,price,BrandID,Unit,Pic,Watermark,IndexShow,Special) select ID,CategoryID,Productname ,SerialNum,KeyWord,price,BrandID,Unit,Pic,Watermark,IndexShow,Special  from [Product]为 insert into #t select ID,CategoryID,Productname ,SerialNum,KeyWord,price,BrandID,Unit,Pic,Watermark,IndexShow,Special  from [Product]

结果还是无法运行出结果。
郁闷啊
这存储过程还真麻烦。


生活的理想,就是为了理想的生活。
2010-08-13 17:21
yukai621
Rank: 2
等 级:论坛游民
威 望:1
帖 子:27
专家分:71
注 册:2010-8-13
收藏
得分:10 
你建立主键了吗
2010-08-13 17:39
aei135
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:232
专家分:1176
注 册:2009-4-6
收藏
得分:10 
你的临时表有自增字段viewID,自增字段是不能插入具体值的,它会自动生成的,可以把临时表的自增字段改成普通字段,然后用下面的语句就对了insert into #t (viewID,CategoryID,Productname ,SerialNum,KeyWord,price,BrandID,Unit,Pic,Watermark,IndexShow,Special) select ID,CategoryID,Productname ,SerialNum,KeyWord,price,BrandID,Unit,Pic,Watermark,IndexShow,Special  from [Product]
如果多加了个ID字段,那就必须这样写
insert into #t (ID,CategoryID,Productname ,SerialNum,KeyWord,price,BrandID,Unit,Pic,Watermark,IndexShow,Special) select ID,CategoryID,Productname ,SerialNum,KeyWord,price,BrandID,Unit,Pic,Watermark,IndexShow,Special  from [Product]               viewID还是会自动生成的
2010-08-13 22:30
快速回复:如何解决分页存储过程错误:提示当 IDENTITY_INSERT 设置为 OFF 时,不 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014585 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved