对不起,敲错了。代码如下(我在sql query analyzer中调试): declare @strCommand char(200) declare @strFldName char(6) declare @strFldBianhao char(20) declare @strFldValue int .................... set @strCommand='update k5 set '+rtrim(@strFldName)+'='+ rtrim(str(@strFldValue))+ ' where 商品编号='+'rtrim(@strFldBianhao)' print(@strCommand) EXEC(@strCommand)调试结果如下: update k5 set XXL = 123 where 商品编号=rtrim(@strFldBianhao) Server: Msg 137, Level 15, State 2, Line 1 Must declare the variable '@strFldBianhao'. 快帮我看看吧!!我都快被折磨死了!!
我知道了,改成: set @strCommand='update k5 set '+rtrim(@strFldName)+'='+ rtrim(str(@strFldValue))+ ' where 商品编号='+ rtrim(@strFldBianhao) print(@strCommand) EXEC(@strCommand) 就是这句有问题: ' where 商品编号='+'rtrim(@strFldBianhao)'
對了,樓上的說的正確,不應該在 'trim(@strFldBianhao)'加上引號
谢谢你们,问题是我的商品编号是字符型的,那样的话仍然会出错。 会提示说: update k5 set XXL = 456 where 商品编号=A2005 Server: Msg 207, Level 16, State 3, Line 1 Invalid column name 'A2005'欢迎大家继续帮我出主意!!! 或看看有没有别的替代办法阿!!!
把單引號改成雙引號即可. 這樣: set @strCommand="update k5 set "+rtrim(@strFldName)+"="+ rtrim(str(@strFldValue))+ " where 商品编号='"+ rtrim(@strFldBianhao)+"'"
那样的话会提示: Server: Msg 207, Level 16, State 3, Line 17 Invalid column name 'update k5 set '. Server: Msg 207, Level 16, State 1, Line 17 Invalid column name '='. Server: Msg 207, Level 16, State 1, Line 17 Invalid column name ' where 商品编号=''. Server: Msg 207, Level 16, State 1, Line 17 Invalid column name '''.
你的引号没有写对! 请参看下面: set @strCommand='update k5 set '+rtrim(@strFldName)+'='+rtrim(str(@strFldValue))+' where 商品编号='''+ rtrim(@strFldBianhao)+''''
declare @strFldName char(6)
declare @strFldBianhao char(20)
declare @strFldValue int .................... set @strCommand='update k5 set '+rtrim(@strFldName)+'='+
rtrim(str(@strFldValue))+
' where 商品编号='+'rtrim(@strFldBianhao)'
print(@strCommand)
EXEC(@strCommand)调试结果如下: update k5 set XXL = 123 where 商品编号=rtrim(@strFldBianhao)
Server: Msg 137, Level 15, State 2, Line 1
Must declare the variable '@strFldBianhao'.
快帮我看看吧!!我都快被折磨死了!!
set @strCommand='update k5 set '+rtrim(@strFldName)+'='+
rtrim(str(@strFldValue))+
' where 商品编号='+ rtrim(@strFldBianhao)
print(@strCommand)
EXEC(@strCommand)
就是这句有问题:
' where 商品编号='+'rtrim(@strFldBianhao)'
会提示说:
update k5 set XXL = 456 where 商品编号=A2005
Server: Msg 207, Level 16, State 3, Line 1
Invalid column name 'A2005'欢迎大家继续帮我出主意!!!
或看看有没有别的替代办法阿!!!
這樣:
set @strCommand="update k5 set "+rtrim(@strFldName)+"="+
rtrim(str(@strFldValue))+
" where 商品编号='"+ rtrim(@strFldBianhao)+"'"
Server: Msg 207, Level 16, State 3, Line 17
Invalid column name 'update k5 set '.
Server: Msg 207, Level 16, State 1, Line 17
Invalid column name '='.
Server: Msg 207, Level 16, State 1, Line 17
Invalid column name ' where 商品编号=''.
Server: Msg 207, Level 16, State 1, Line 17
Invalid column name '''.
请参看下面:
set @strCommand='update k5 set '+rtrim(@strFldName)+'='+rtrim(str(@strFldValue))+' where 商品编号='''+ rtrim(@strFldBianhao)+''''