欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【SQLServer编写存储过程小工具(三)】,下面是详细的分享!
SQLServer编写存储过程小工具(三)
CREATEproceduresp_GenUpdate
@TableNamevarchar(130),
@PrimaryKeyvarchar(130),
@ProcedureNamevarchar(130)
as
setnocounton
declare@maxcolint,
@TableIDint
'knowsky.com
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'UPDATE'+@TableName,@maxcol+2ascolorder
union
select'SET',@maxcol+3ascolorder
union
selectsyscolumns.name+'=@'+syscolumns.name
+casewhencolorder<@maxcolthen','
whencolorder=@maxcolthen''
end
astype,
colorder+@maxcol+3ascolorder
fromsyscolumns
joinsystypesonsyscolumns.xtype=systypes.xtype
whereid=@TableIDandsyscolumns.name<>@PrimaryKeyandsystypes.name<>'sysname'
union
select'WHERE'+@PrimaryKey+'=@'+@PrimaryKey,(2*@maxcol)+4ascolorder
orderbycolorder
selecttypefrom#tempprocorderbycolorder
droptable#tempproc
以上所分享的是关于SQLServer编写存储过程小工具(三),下面是编辑为你推荐的有价值的用户互动:
相关问题:sql server 2008 怎么编写存储过程
答:第一步:点击数据库下的“可编程性”,选择“存储过程”,点击鼠标右键,选择“新建存储过程” 第二步:在create PROCEDURE 后 输入存储过程的名字,紧跟着的就是定义存储过程的参数,接下来就可以去编写自己所需要组装的存储过程语句了 第三步: 编译... >>详细
相关问题:sql 存储过程语句编写
答:要到达你的要求,在存储过程中必须使用动态SQL语句。 一个简化的例子: create procedure MyDynamicSQL @tblwhere nvarchar(200) -- a==a or a==xxxas begin declare @sql nvarchar(max) -- 动态拼接sql语句 set @sql = N'select * from [表一] ... >>详细
相关问题:SQL编写存储过程计计算1!+2!+3!+…+N!
答:drop procedure p_test go CREATE procedure p_test(@n int) as begin declare @i int -- 外层循环变量 declare @j int -- 内层循环变量 declare @c varchar(2000) -- 结果字符串 declare @totalc varchar(2000) --内层循环拼接字符串 select @i... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
