当前位置:  数据库>sqlserver

动态SQL中返回数值的实现代码

    来源: 互联网  发布时间:2014-10-04

    本文导语:  代码如下: ALTER proc [dbo].[sp_common_paypal_AddInfo] ( @paypalsql varchar(max),--不包含用户表的paypalsql语句 @paypalusersql varchar(max),--paypal用户表的sql语句 @ebaysql varchar(max),--不包含用户表的ebaysql语句 @ebayusersql varchar(max),--ebay的用户表sql语句 @pa...

代码如下:

ALTER proc [dbo].[sp_common_paypal_AddInfo]
(
@paypalsql varchar(max),--不包含用户表的paypalsql语句
@paypalusersql varchar(max),--paypal用户表的sql语句
@ebaysql varchar(max),--不包含用户表的ebaysql语句
@ebayusersql varchar(max),--ebay的用户表sql语句
@paypaluserwhere varchar(max),--paypal用户表查询ID语句
@ebayuserwhere varchar(max),--ebay用户表查询ID语句
@websql varchar(max),--web除去用户表的sql语句
@webusersql varchar(max),--web用户表的sql语句
@webwhere varchar(max),--web用户表where之后的sql语句
@ebaystockflag varchar(10),--ebay订单号生成规则
@webstockflag varchar(10)--web订单号生成规则
)
as
set xact_abort on
begin transaction mytrans
begin try
declare @uid int--根据语句查找用户ID
declare @execsql varchar(max)
declare @ebayuid int--根据语句查找用户ID
declare @execebaysql nvarchar(max)--用sp_executesql 字段类型必须是nvarchar
declare @sql nvarchar(max)--用sp_executesql 字段类型必须是nvarchar
set @sql='select @a=ID from tb_TransactionCustomer where '+ convert(varchar(8000),@paypaluserwhere)
exec sp_executesql @sql,N'@a int output',@uid output
set @uid =ISNULL(@uid,0)--如果不这样判断 获取的值可能为null用len()获取不到长度
--存在paypal用户id
if(@uid>0)
begin
set @execsql=@paypalsql-- 存在用户信息
set @execsql= REPLACE(@execsql,'@uid',''+convert(varchar,@uid)+'')
end
else
begin
set @execsql=@paypalusersql+@paypalsql --不存在用户信息
end
if(LEN(@websql)>0)--执行web语句
begin
exec sp_common_WebSiteorder_AddInfo @websql, @webusersql, @webwhere ,@webstockflag
end
if(LEN(@ebaysql)>0)--执行ebay语句
begin
--exec sp_common_Ebay_AddInfo @ebaysql, @ebayusersql, @ebayuserwhere ,@ebaystockflag
SELECT * FROM tb_EbayOrder WITH (TABLOCKX)
SELECT * FROM tb_EbayOrderList WITH (TABLOCKX)
SELECT * FROM tb_EbayOrderUserInfo WITH (TABLOCKX)
set @sql='select @b=ID from tb_EbayOrderUserInfo where '+ convert(varchar(8000),@ebayuserwhere)
exec sp_executesql @sql,N'@b int output',@ebayuid output
set @ebayuid =ISNULL(@ebayuid,0)
if(@ebayuid>0)
begin
set @execebaysql=@ebaysql--存在ebayuid
set @execebaysql= REPLACE(@execebaysql,'@ebayuid',''+convert(varchar,@ebayuid)+'')--必须替换 否则会报错误说必须声明标量变量
end
else
begin
set @execebaysql=@ebayusersql+@ebaysql --不存在ebayuid
end
set @execebaysql= REPLACE(@execebaysql,'@00',dbo.GetOrderNum(@ebaystockflag))--调用函数替换订单编号
exec (@execebaysql)
end
exec(@execsql)
end try
begin catch
if(@@TRANCOUNT>0)
rollback transaction mytrans
end catch
if(@@TRANCOUNT>0)
begin
commit transaction mytrans
end
else begin
rollback transaction mytrans
end

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • 使用 C# 动态编译代码和执行的代码
  • jquery为动态加载的元素绑定事件的代码
  • 不改变代码,怎样使每次编译生成的可执行程序或动态库二进制保持一致?
  • c# 动态添加非标准html控件的代码
  • ?100分求jsp树的原代码 最好是jsp+js+xml 执行效率要高。(从数据库中动态生成的)(散分)
  • Unix里编写动态库时会不会像Windows一样在源代码中含有Dllmain()类似的主函数?
  • 急,急,急!!!高分求购java实现动态树型菜单的源代码
  • jquery动态设置超链接显示内容的实现代码
  • Jquery 动态实现图片缩略的代码
  • 用css动态生成闪字的代码
  • 100分求jsp树的原代码 最好是jsp+js+xml 执行效率要高。(从数据库中动态生成的)在线
  • ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
  • 求jsp树的原代码,一定要是jsp+js+xml 执行效率要高。(从数据库中动态生成的)
  • 动态生成的孔件怎么添加响应事件,并在里面写代码?
  • 动态创建类实例代码
  • jQuery动态获取系统时间的代码举例
  • php 饼状图的动态生成代码
  • jquery动态加载与去除js代码的三种方法
  • Java动态调用类中方法代码
  • Jquery 动态生成表格示例代码
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 可执行程序加载动态库 和 动态库加载动态库 的动态库初始化的问题
  • 动态库调用动态库
  • linux动态链接库里全局变量和静态变量会导致动态库不可重入吗?
  • linux能否成为动态域名解析客户端的动态域名解析服务器?
  • 关于动态菜单项,注意,不是动态菜单(一定给分)
  • Linux下,怎么确定动态库的绝对位置(动态库里面确定)?
  • 为什么动态生成的图片,JSP不能动态的获得
  • 请问:能不能动态的运行时生成对象(动态定义对象), 要涉及到哪些技术, 反射,序列化...??
  • 动态加载动态库问题--在线等


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3