☆  内存表 和 标识列  ☆--热烈欢迎大家帮助!!!
   DECLARE   @BEGINTIME   DATETIME 
 DECLARE   @ENDTIME   DATETIME 
 SET   @BEGINTIME   =    '2007-1-1   0:0:0 ' 
 SET   @ENDTIME   =    '2007-3-1   0:0:0 '   
 ---------------------------------------------- 
 DECLARE   @T   TABLE(任务编码   CHAR(20),编码   INT) 
 ---------------------------------------------- 
 DECLARE   @I   INT 
 SET   @I=0   
 WHILE   @I <=DATEDIFF(MONTH,@BEGINTIME,@ENDTIME) 
 BEGIN 
 	IF   (SELECT   DATEDIFF(MONTH,@BEGINTIME,@ENDTIME))   > =   @I 
 	BEGIN   
 	DECLARE   @TEMP   TABLE(名称   CHAR(20),编码   INT   IDENTITY(1,1)) 
 	INSERT   INTO   @TEMP 
 		SELECT   任务编码    
 		FROM   TTASKVIEW 
 		WHERE   生成任务时刻> =(DATEADD(MONTH,@I,CONVERT(DATETIME,(LEFT(CONVERT(VARCHAR,@BEGINTIME,2),6)+ '01 '))))    
 	AND   生成任务时刻> =   CONVERT(DATETIME,(LEFT(CONVERT(VARCHAR,@BEGINTIME,2),6)+ '01 ')) 
 	AND   生成任务时刻 <=(DATEADD(MONTH,@I+1,CONVERT(DATETIME,(LEFT(CONVERT(VARCHAR,@BEGINTIME,2),6)+ '01 '))))		 
 	INSERT   INTO   @T 
 		SELECT   *   FROM   @TEMP 
 ----------------------- 
 DBCC   CHECKIDENT   (@TEMP,   RESEED,   1)--here   !!! 
 ----------------------- 
 select   *   from   @TEMP   
 DELETE   FROM   @TEMP   
 	END 
 	SET   @I=@I+1 
 END   
 select   *   from   @T     
 我要写成一个函数,似乎不能用临时表。 
 内存表不能drop,我的标识列要求每月都是以1开始的。   
 DBCC   CHECKIDENT   (@TEMP,   RESEED,   1)--here   !!!   
 这个话似乎不对???不该这么写?
------解决方案--------------------DBCC CHECKIDENT (@TEMP, RESEED, 1) 
 不可以这样的。 
 但你可以在建@TEMP不使用IDENTITY(1,1),使用一个增量@I=@I+1 插入到表@TEMP中的编码列。
------解决方案--------------------每次重新产生不可以么?
------解决方案--------------------    DECLARE @BEGINTIME DATETIME 
 DECLARE @ENDTIME DATETIME 
 SET @BEGINTIME =  '2007-1-1 0:0:0 ' 
 SET @ENDTIME =  '2007-3-1 0:0:0 '   
 ---------------------------------------------- 
 DECLARE @T TABLE(任务编码 CHAR(20),编码 INT) 
 ---------------------------------------------- 
 DECLARE @I INT 
 SET @I=0   
 WHILE @I <=DATEDIFF(MONTH,@BEGINTIME,@ENDTIME) 
 BEGIN 
 	IF (SELECT DATEDIFF(MONTH,@BEGINTIME,@ENDTIME)) > = @I 
 	BEGIN   
 ----------------------- 
 DBCC CHECKIDENT (TEMP0, RESEED,0) 
 -----------------------   
 	INSERT INTO TEMP0 
 		SELECT 任务编码  
 		FROM TTASKVIEW 
 		WHERE 生成任务时刻> =(DATEADD(MONTH,@I,CONVERT(DATETIME,(LEFT(CONVERT(VARCHAR,@BEGINTIME,2),6)+ '01 '))))  
 	AND 生成任务时刻> = CONVERT(DATETIME,(LEFT(CONVERT(VARCHAR,@BEGINTIME,2),6)+ '01 ')) 
 	AND 生成任务时刻 <=(DATEADD(MONTH,@I+1,CONVERT(DATETIME,(LEFT(CONVERT(VARCHAR,@BEGINTIME,2),6)+ '01 '))))		 
 	INSERT INTO @T 
 		SELECT * FROM TEMP0   
 DELETE FROM TEMP0   
 	END 
 	SET @I=@I+1 
 END   
 select * from @T   
 呵呵,还是我。 
 我在数据库里面建立了表TEMP0(任务编码,编码-标识列) 
 暂时看上去是对的。   
------解决方案--------------------