读书人

帮忙看下话语还是报错

发布时间: 2013-07-09 09:50:47 作者: rapoo

帮忙看下语句还是报错
declare @m_t varchar(50)
declare @m_t1 varchar(50)
set @m_t='book'
set @m_t1='张三'
update tj set 总金额=(select sum(价格) from '+@m_t+' where 价格>=50 and
账号 in (select 编号 from buy_book where name='''+@m_t1+''')

执行报错
服务器: 消息 170,级别 15,状态 1,行 5
第 5 行: '+@m_t+' 附近有语法错误。

[解决办法]


declare @m_t1 varchar(50)
set @m_t='book'
set @m_t1='张三'
declare @str varchar(max)

set @str='
update tj set 总金额=(select sum(价格) from '+@m_t+' where 价格>=50 and
账号 in (select 编号 from buy_book where name='''+@m_t1+''')
'

exec( @str)

[解决办法]
declare @m_t varchar(50)
declare @m_t1 varchar(50)
declare @sql varchar(max)
set @m_t='book'
set @m_t1='张三'

set @sql='update tj set 总金额=(select sum(价格) from '+@m_t+' where 价格>=50 and
账号 in (select 编号 from buy_book where name='''+@m_t1+''')'

exec(@sql)

[解决办法]

declare @m_t varchar(50)
declare @m_t1 varchar(50)
set @m_t='book'
set @m_t1='张三'
DECLARE @sql VARCHAR(max)
SET @sql='update tj set 总金额=(select sum(价格) from '+@m_t+' where 价格>=50 and
账号 in (select 编号 from buy_book where name='''+@m_t1+'''))'

EXEC(@sql)


[解决办法]

引用:

执行还是报错呢
服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: ')' 附近有语法错误。



declare @m_t varchar(50)
declare @m_t1 varchar(50)
set @m_t='book'
set @m_t1='张三'
declare @str varchar(max)

set @str='
update tj set 总金额=(select sum(价格) from '+@m_t+' where 价格>=50 and
账号 in (select 编号 from buy_book where name='''+@m_t1+'''))
'


[解决办法]
declare @m_t varchar(50)
declare @m_t1 varchar(50)
declare @sql varchar(max)
set @m_t='book'
set @m_t1='张三'

set @sql='update tj set 总金额=(select sum(价格) from '+@m_t+' where 价格>=50 and
账号 in (select 编号 from buy_book where name='''+@m_t1+'''))'

exec(@sql)

读书人网 >SQL Server

热点推荐