当前位置:首页 > 网络编程 > 数据库 > SQL Server > SQLServer编写存储过程小工具(二)

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

点击次数:32 次 发布日期:2008-11-21 22:44:13 作者:源代码网
源代码网推荐

源代码网整理以下SQLServer编写存储过程小工具

源代码网整理以下以下是两个存储过程的源程序

源代码网整理以下


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

源代码网整理以下语法:sp_GenInsert<TableName>,<StoredProcedureName>
以northwind数据库为例
sp_GenInsert"Employees","INS_Employees"

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

源代码网整理以下=============================================================*/

源代码网整理以下CREATEproceduresp_GenInsert
@TableNamevarchar(130),
@ProcedureNamevarchar(130)
as
setnocounton

declare@maxcolint,
@TableIDint

set@TableID=object_id(@TableName)

select@MaxCol=max(colorder)
fromsyscolumns
whereid=@TableID

select"CreateProcedure"+rtrim(@ProcedureName)astype,0ascolorderinto#TempProc
union
selectconvert(char(35),"@"+syscolumns.name)
+rtrim(systypes.name)
+casewhenrtrim(systypes.name)in("binary","char","nchar","nvarchar","varbinary","varchar")then"("+rtrim(convert(char(4),syscolumns.length))+")"
whenrtrim(systypes.name)notin("binary","char","nchar","nvarchar","varbinary","varchar")then""
end
+casewhencolorder<@maxcolthen","
whencolorder=@maxcolthen""
end
astype,
colorder
fromsyscolumns
joinsystypesonsyscolumns.xtype=systypes.xtype
whereid=@TableIDandsystypes.name<>"sysname"
union
select"AS",@maxcol+1ascolorder
union
select"INSERTINTO"+@TableName,@maxcol+2ascolorder
union
select"(",@maxcol+3ascolorder
union
selectsyscolumns.name
+casewhencolorder<@maxcolthen","
whencolorder=@maxcolthen""
end
astype,
colorder+@maxcol+3ascolorder
fromsyscolumns
joinsystypesonsyscolumns.xtype=systypes.xtype
whereid=@TableIDandsystypes.name<>"sysname"
union
select")",(2*@maxcol)+4ascolorder
union
select"VALUES",(2*@maxcol)+5ascolorder
union
select"(",(2*@maxcol)+6ascolorder
union
select

源代码网整理以下
selecttypefrom#tempprocorderbycolorder

droptable#tempproc


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华