sql server 事物

a785510512 2014-12-03 02:56:30
如题:
创建一个存储过程,里面包含事物,创建成功,在调用时候 错误信息:出现异常,错误编号:207,错误消息:列名 'OIP' 无效。
1

求各位解救解救!
Sql存储过程代码如下:
create proc proc_tranDemo

@tablename1 nvarchar(50),
@imagepwd nvarchar(20),
@imageName nvarchar(50),
@imageBigname nvarchar(50),

@tablename2 nvarchar(50),
@name nvarchar(20),
@phone nvarchar(30),
@openid nvarchar(30)
as
declare @err int
set @err = 0

begin TRANSACTION --事物开始
BEGIN TRY
DECLARE @str nVARCHAR(2000)
set @str='update '+@tablename1+' set [Status]=1 where ImagePwd='+@imagepwd+' and ImageName='+@imageName+' and ImageBigname='+@imageBigname+''
execute sp_executesql @str
set @err = @err + @@error

DECLARE @strs nVARCHAR(2000)
set @strs='insert into '+@tablename2+' (name,phone,openid,ImageName,Imagepwd,[Status],ImageBigname) values('+@name+','+@phone+','+@openid+','+@imageName+','+@imagepwd+',0,'+@imageBigname+')'
execute sp_executesql @strs
set @err = @err + @@error
end try
BEGIN CATCH
PRINT '出现异常,错误编号:' + convert(varchar,error_number()) + ',错误消息:' + error_message()
SET @err = @err + 1
END CATCH
if(@err>0)
begin
rollback TRANSACTION --错误回滚事物
end
else
begin
commit TRANSACTION --无错误提交事物
end
print @err
...全文
184 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a785510512 2014-12-03
  • 打赏
  • 举报
回复
引用 6 楼 Tiger_Zhao 的回复:
--拼动态SQL时,字符串值要加引号。其余一样处理
set @str='update '+@tablename1+' set [Status]=1 where ImagePwd='''+@imagepwd+''' and ...'
3Q
Tiger_Zhao 2014-12-03
  • 打赏
  • 举报
回复
--拼动态SQL时,字符串值要加引号。其余一样处理
set @str='update '+@tablename1+' set [Status]=1 where ImagePwd='''+@imagepwd+''' and ...'
a785510512 2014-12-03
  • 打赏
  • 举报
回复
别沉了。。求大神们啊
a785510512 2014-12-03
  • 打赏
  • 举报
回复
引用 1 楼 alimake 的回复:
调用代码了 贴出来看
调用代码如下: exec proc_tranDemo 'G13452269909','OIP','OOPI1000002','舒服点','G111111111111','','111111111111','qasdsadsad'
a785510512 2014-12-03
  • 打赏
  • 举报
回复
引用 楼主 a785510512 的回复:
如题: 创建一个存储过程,里面包含事物,创建成功,在调用时候 错误信息:出现异常,错误编号:207,错误消息:列名 'OIP' 无效。 1 求各位解救解救! Sql存储过程代码如下:
create proc proc_tranDemo

@tablename1 nvarchar(50),
@imagepwd nvarchar(20),
@imageName nvarchar(50),
@imageBigname nvarchar(50),

@tablename2 nvarchar(50),
@name nvarchar(20),
@phone nvarchar(30),
@openid nvarchar(30)
as
declare @err int
set @err = 0

 begin TRANSACTION --事物开始
 BEGIN TRY 
 DECLARE @str nVARCHAR(2000)
 set @str='update '+@tablename1+' set [Status]=1 where ImagePwd='+@imagepwd+' and ImageName='+@imageName+' and ImageBigname='+@imageBigname+'' 
 execute sp_executesql @str 
 set @err = @err + @@error
 
 DECLARE @strs nVARCHAR(2000)
 set @strs='insert into '+@tablename2+' (name,phone,openid,ImageName,Imagepwd,[Status],ImageBigname) values('+@name+','+@phone+','+@openid+','+@imageName+','+@imagepwd+',0,'+@imageBigname+')'
 execute sp_executesql @strs 
 set @err = @err + @@error
 end try
 BEGIN CATCH
    PRINT '出现异常,错误编号:' + convert(varchar,error_number()) + ',错误消息:' + error_message()
    SET @err = @err + 1
END CATCH
 if(@err>0)
 begin
   rollback TRANSACTION --错误回滚事物
 end
 else
 begin
  commit TRANSACTION    --无错误提交事物
 end
  print @err
  
调用存储过程 代码: exec proc_tranDemo 'G13452269909','OIP','OOPI1000002','舒服点','G111111111111','','111111111111','qasdsadsad'
hepe00 2014-12-03
  • 打赏
  • 举报
回复
你调用的时候,怎么调用的
xiaodongni 2014-12-03
  • 打赏
  • 举报
回复
调用代码了 贴出来看

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧