自增表

 

 
    
  1. USE [li] 
  2. GO 
  3. /****** 对象:  Table [dbo].[IDArray]    脚本日期: 05/11/2012 08:26:46 ******/ 
  4. SET ANSI_NULLS ON 
  5. GO 
  6. SET QUOTED_IDENTIFIER ON 
  7. GO 
  8. CREATE TABLE [dbo].[IDArray]( 
  9.     [id] [int] NOT NULL, 
  10.  CONSTRAINT [PK_IDArray] PRIMARY KEY CLUSTERED  
  11.     [id] ASC 
  12. )WITH (PAD_INDEX  = OFFSTATISTICS_NORECOMPUTE  = OFFIGNORE_DUP_KEY = OFFALLOW_ROW_LOCKS  = ONALLOW_PAGE_LOCKS  = ON) ON [PRIMARY] 
  13. ) ON [PRIMARY] 

 

结果表

 

 
    
  1. USE [li] 
  2. GO 
  3. /****** 对象:  Table [dbo].[ResultRecord]    脚本日期: 05/11/2012 08:27:25 ******/ 
  4. SET ANSI_NULLS ON 
  5. GO 
  6. SET QUOTED_IDENTIFIER ON 
  7. GO 
  8. CREATE TABLE [dbo].[ResultRecord]( 
  9.     [ID] [int] IDENTITY(1,1) NOT NULL, 
  10.     [ResultID] [int] NULL, 
  11.     [TableType] [nvarchar](40) NULL, 
  12.     [Keyword] [nvarchar](100) NULL, 
  13.     [KeywordType] [nvarchar](50) NULL, 
  14.  CONSTRAINT [pk_ResultRecord] PRIMARY KEY CLUSTERED  
  15.     [ID] ASC 
  16. )WITH (PAD_INDEX  = OFFSTATISTICS_NORECOMPUTE  = OFFIGNORE_DUP_KEY = OFFALLOW_ROW_LOCKS  = ONALLOW_PAGE_LOCKS  = ON) ON [PRIMARY] 
  17. ) ON [PRIMARY] 

查询的存储过程

 

 
    
  1. USE [li] 
  2. GO 
  3. /****** 对象:  StoredProcedure [dbo].[CheckNoExist]    脚本日期: 05/11/2012 08:27:55 ******/ 
  4. SET ANSI_NULLS ON 
  5. GO 
  6. SET QUOTED_IDENTIFIER ON 
  7. GO 
  8. ALTER Procedure [dbo].[CheckNoExist] 
  9. @Column varchar(50)='', 
  10. @Table varchar(50)='', 
  11. @Url varchar(200)='' 
  12. As  
  13. Set NoCount on 
  14.  
  15. Declare @ID int,@Number int,@IsEqual int 
  16. exec('Declare IDCursor Cursor  For Select top 1 '+@Column+' from '+@Table+' With(Nolock) Order by '+@Column+' desc') 
  17. Open IDCursor 
  18. set @Number=1 
  19. Fetch Next From IDCursor Into @ID 
  20.  
  21. ----填充自增循环表--------------------- 
  22. if exists (select id from IDArray) 
  23.     exec('delete from IDArray') 
  24.  
  25.  
  26.  
  27. While @ID>=@Number 
  28. Begin 
  29.     Insert IDArray(ID) values(''+@Number+'') 
  30.     set @Number=@Number+1 
  31. End 
  32.  
  33. ----对比ID--------------------------- 
  34. exec('Insert UrlRecord(id,tname,url) select id,'''+@Table+''',REPLACE(REPLACE('''+@Url+''',''{ID}'',id),''{DIR}'',id/1000) from IDArray where id not in(select '+@Column+' from '+@Table+')') 
  35.  
  36. Close IDCursor 
  37. deallocate IDCursor 

存储过程调用示例

 

 
    
  1. EXEC CheckNoExist agent_info_id,'cnsbdata.dbo.agent_info','html/agent/{DIR}/agent_info_show_{ID}.html';