中国网格虚拟主机不满意退款承诺!
24小时咨询热线:021-51095771  51087627
中国网格
快速建站 只选网格
域名+空间+数据库+维护 企业网站整体服务商
支付方式数 据 库优惠套餐
您当前的位置 
首页
快速建站
技术
MSSQL
正文

MSSQL Server编写存储过程小工具(二)

发布时间:2012-10-26 15:12:19| www.cnwg.cn | 文章标签:MSSQL,存储过程,小工具

SQL Server编写存储过程小工具

以下是两个存储过程的源程序

/*===========================================================  

语法: sp_GenInsert

,

以northwind 数据库为例

sp_GenInsert 'Employees', 'INS_Employees'

注释:如果您在Master系统数据库中创建该过程,那您就可以在您服务器上所有的数据库中使用该过程。

=============================================================*/ 

CREATE procedure sp_GenInsert

@TableName varchar(130), 

@ProcedureName varchar(130) 

as

set nocount on

declare @maxcol int, 

@TableID int 

set @TableID = object_id(@TableName)

select @MaxCol = max(colorder)

from syscolumns

where id = @TableID

select 'Create Procedure ' + rtrim(@ProcedureName) as type,0 as colorder into #TempProc

union

select convert(char(35),'@' + syscolumns.name)

+ rtrim(systypes.name)

+ case when rtrim(systypes.name) in ('binary','char','nchar','nvarchar','varbinary','varchar') then '(' + rtrim(convert(char

(4),syscolumns.length)) + ')'

when rtrim(systypes.name) not in ('binary','char','nchar','nvarchar','varbinary','varchar') then ' '

end

+ case when colorder < @maxcol then ','

when colorder = @maxcol then ' '

end 

as type, 

colorder 

from syscolumns

join systypes on syscolumns.xtype = systypes.xtype

where id = @TableID and systypes.name <> 'sysname'

union

select 'AS',@maxcol + 1 as colorder

union

select 'INSERT INTO ' + @TableName,@maxcol + 2 as colorder

union

select '(',@maxcol + 3 as colorder

union

select syscolumns.name 

+ case when colorder < @maxcol then ',' 

when colorder = @maxcol then ' ' 

end 

as type, 

colorder + @maxcol + 3 as colorder 

from syscolumns 

join systypes on syscolumns.xtype = systypes.xtype 

where id = @TableID and systypes.name <> 'sysname' 

union 

select ')',(2 * @maxcol) + 4 as colorder 

union 

select 'VALUES',(2 * @maxcol) + 5 as colorder

union

select '(',(2 * @maxcol) + 6 as colorder

union

select '@' + syscolumns.name

+ case when colorder < @maxcol then ','

when colorder = @maxcol then ' '

end 

as type, 

colorder + (2 * @maxcol + 6) as colorder 

from syscolumns 

join systypes on syscolumns.xtype = systypes.xtype 

where id = @TableID and systypes.name <> 'sysname' 

union

select ')',(3 * @maxcol) + 7 as colorder

order by colorder

select type from #tempproc order by colorder

drop table #tempproc


数据库空间

数据库存储空间

价格:200元/100M

MySql,SQL可选择

参考资料

我要评价

评价发表成功

错误提示
中国网格所属上海羽灿计算机科技有限公司版权所有 Copyright©cnwg.cn 2003-2013,All Rights Reserved.

联系电话:021-51095771 021-51087627 传真:021-51087637-202
版权所有:上海羽灿计算机科技有限公司 中国网格(cnwg.cn/cnwg.cc)©2003-2013 All Rights Reserved.
地址:上海市银都路3399弄533号 邮编:201108 ICP经营许可证编号:沪B2-20060019 沪ICP备06012189号

  • 经营性网站
    备案信息
  • 网络110
    报警服务
  • 文明办网
    先进单位
  • 支付宝
    特约商家
  • 网络社区
    征信网
  • 上海工商
    网上亮照