我新建了一个存储过程,如下:
CREATE PROCEDURE sp_Transfer
@oldtel varchar(20),
@newtel varchar(20)
AS
declare @sl varchar(255)
declare @oldmoney money
set @sl='select money from table1 where tel='''+@oldtel+'''
exec(@sl) 在这里如何取出money的值并赋给@oldmoney????????? update table1 set money=money+@oldmoney where tel=@newtel update table1 set money=0 where tel=@oldtel
print '转帐成功!'
GO
CREATE PROCEDURE sp_Transfer
@oldtel varchar(20),
@newtel varchar(20)
AS
declare @sl varchar(255)
declare @oldmoney money
set @sl='select money from table1 where tel='''+@oldtel+'''
exec(@sl) 在这里如何取出money的值并赋给@oldmoney????????? update table1 set money=money+@oldmoney where tel=@newtel update table1 set money=0 where tel=@oldtel
print '转帐成功!'
GO
set @sl='select @oldmoney = money from table1 where tel='''+@oldtel+'''
CREATE PROCEDURE sp_Transfer
@oldtel varchar(20),
@newtel varchar(20)
AS
declare @sl nvarchar(MAX) --改为NVARCHAR(MAX)
declare @oldmoney money
set @sl='select money from table1 where tel='''+@oldtel+'''
EXECUTE sp_executesql @sl,N'@oldmoney money OUTPUT',@oldmoney outputupdate table1 set money=money+@oldmoney where tel=@newtel update table1 set money=0 where tel=@oldtel
print '转帐成功!'
create PROCEDURE sp_Transfer
@oldtel varchar(20),
@newtel varchar(20)
AS
declare @sl varchar(MAX) --改为NVARCHAR(MAX)
declare @oldmoney money
set @sl='select money from table1 where tel='''+@oldtel+''''
EXECUTE sp_executesql @sl,N'@oldmoney money OUTPUT',@oldmoney outputupdate table1 set money=money+@oldmoney where tel=@newtel
update table1 set money=0 where tel=@oldtel
print '转帐成功!'
第 6 行: 'MAX' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,过程 sp_Transfer2,行 9
第 9 行: '@oldmoney' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,过程 sp_Transfer2,行 12
字符串 '
insert into table1 values(22,'aa')
insert into table1 values(22,'bb')ALTER PROCEDURE sp_Transfer
@oldtel varchar(20),
@newtel varchar(20)
AS
declare @sl nvarchar(8000) --改为NVARCHAR(8000)
declare @oldmoney money
set @sl='select @oldmoney=money from table1 where tel='''+@oldtel+''''
EXECUTE sp_executesql @sl,N'@oldmoney money OUTPUT',@oldmoney outputupdate table1 set money=money+@oldmoney where tel=@newtel
update table1 set money=0 where tel=@oldtel
print '转帐成功!' EXEC sp_Transfer 'aa','aa'
/*(1 行受影响)(1 行受影响)
转帐成功!*/