日期:2014-05-19  浏览次数:21071 次

再问,关于SysColumns
m_test   有2个列,一个是mon   char(15),虽然是char,但是由数字组成,开头允许为0。
另外一个是日期,不多描述。我想要通过SysColumns来实现效率更高的插入操作。
------------------------------------
declare   @a   char(15),@b   char(15),@c   numeric(9),@S1   varchar(800)
Select   @a= '001234567891234 ',@b= '001234568891234 ',@c=cast(@b   as   numeric)-cast(@a   as   numeric)

Select   @s1= 'select   Top   '+   rtrim(@c)   +   '   ident=identity(numeric, '+@a+ ',1)   into   #Table_Pqs   from   SysColumns   A,SysColumns   B '

Exec(@s1)

Insert   Into   m_test(mon,limitDay)   Select   right( '000000000000000 '+ident,15),getdate()   from   #Table_Pqs   where   ident <=cast(@b   as   numeric)

------------
希望得到的效果是

mon                                       limitDay
001234567891234               getdate()的时间
001234567891235               getdate()的时间
001234567891236               getdate()的时间
001234567891237               getdate()的时间
001234567891238               getdate()的时间
001234567891239               getdate()的时间
。。。                                 。。。
001234568891234               getdate()的时间

------解决方案--------------------
需要使用全局临时表(##Table_Pqs)而不能是局部临时表(#Table_Pqs ).请将#Table_Pqs改为##Table_Pqs.