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

cwn1li9tkyp

cwn1li9tkyp

2016-01-29 16:25

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

SQL Server编写存储过程小工具
以下是两个存储过程的源程序
/*===========================================================

语法: sp_GenInsert <Table Name,<Stored Procedure Name
以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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)


select type from #tempproc order by colorder

drop table #tempproc

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/) 
展开更多 50%)
分享

猜你喜欢

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

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

SQL SERVER编写存储过程小工具

Web开发
SQL SERVER编写存储过程小工具

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server编写存储过程小工具(三)

SQLServer
SQL Server编写存储过程小工具(三)

SQL Server编写存储过程小工具(一)

SQLServer
SQL Server编写存储过程小工具(一)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

编写安全的SQL server扩展存储过程

SQLServer
编写安全的SQL server扩展存储过程

编写SQL Server的扩展存储过程实例

SQLServer
编写SQL Server的扩展存储过程实例

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

在SQLSERVER2005中实现素数计算

在SQLSERVER2005中实现素数计算

PS制作一个逼真的真皮纹理公文包

PS制作一个逼真的真皮纹理公文包
下拉加载更多内容 ↓