将数据库中的初始化数据转换成INSERT语句的存储过程

--将数据库中的初始化数据转换成INSERT语句的存储过程
create     proc   spGenInsertSQL  

@TableName   as   varchar(100)  

as 

--declare   @TableName   varchar(100)  

--set   @TableName   =   'orders'  

--set   @TableName   =   'eeducation'  

DECLARE   xCursor   CURSOR   FOR  

SELECT   name,xusertype  

FROM   syscolumns 

WHERE   (id   =   OBJECT_ID(@TableName) )

declare   @F1   varchar(100)  

declare   @F2   integer  

declare   @SQL   varchar(8000)  

set   @sql   ='SELECT   ''INSERT   INTO   '   +   @TableName   +   '   VALUES('''  

OPEN   xCursor  

FETCH   xCursor   into   @F1,@F2  

WHILE   @@FETCH_STATUS   =   0  

BEGIN 

          set   @sql   =@sql   +  

                              +   case   when   @F2   IN   (35,58,99,167,175,231,239,61)   then   '   +   case   when   '   +   @F1   +   '   IS   NULL   then   ''''   else   ''''''''   end   +   '     else   '+'   end  

                              +   'replace(ISNULL(cast('   +   @F1   +   '   as   varchar(8000)),''NULL''),'''''''','''''''''''')'    

                              +   case   when   @F2   IN   (35,58,99,167,175,231,239,61)   then   '   +   case   when   '   +   @F1   +   '   IS   NULL   then   ''''   else   ''''''''   end   +   '     else   '+'   end  

                              +   char(13)   +   ''','''    

          FETCH   NEXT   FROM   xCursor   into   @F1,@F2  

END 

CLOSE   xCursor  

DEALLOCATE   xCursor  

set   @sql   =   left(@sql,len(@sql)   -   5)   +   '   +   '')''   FROM   '   +   @TableName

exec   (@sql)  

 


GO

--注意:使用格式:在查询分析器中执行该存储过程(注意切换到对应的数据库)execute spGenInsertSQL 'student',

执行以上语句,则数据库表student中的所有初始化insert语句都会显示在结果集中,复制走即可使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值