动态SQL的奇怪报错!!!
declare @sql varchar(500),
@val varchar(60)
set @val = 'admin'
set @sql = 'update t1 set user = ' + @val
exec(@sql)
结果报错为“Invalid column name 'admin'”
如果把@val = '101'则不报错
请问这是什么原因?
问题点数:50、回复次数:7Top
1 楼sky_blue(蓝天2007)回复于 2002-01-07 15:12:24 得分 0
@sql='update t1 set user = admin'
所以报错Top
2 楼sky_blue(蓝天2007)回复于 2002-01-07 15:13:52 得分 0
set @val = '''admin'''试试Top
3 楼sky_blue(蓝天2007)回复于 2002-01-07 15:16:52 得分 0
或者直接用:
set @val = 'admin'
update t1 set user = @valTop
4 楼flowerofwind(现实很残酷)回复于 2002-01-07 15:17:44 得分 0
要这样
declare @sql varchar(500),
@val varchar(60)
set @val = '''admin'''
set @sql = 'update t1 set user = ' + @val
exec(@sql)
Top
5 楼N_chow(Yukon)回复于 2002-01-07 15:21:18 得分 50
干脆把
SET QUOTED_IDENTIFIER OFF
然後
declare @sql varchar(500),
@val varchar(60)
set @val = 'admin'
set @sql = "update t1 set user = '" + @val + "'"
exec(@sql)
Top
6 楼youhwa(找不到南)回复于 2002-01-07 15:27:03 得分 0
多谢 N_chow(一劍飄香++) ,SuccessTop
7 楼supsuccess(火气不小)回复于 2002-01-07 15:38:54 得分 0
flowerofwind(现实很残酷) 也正确!Top




