declare @uno varchar(12)set @uno='123456789' exec( 'select * from openrowset(''sqloledb'',''server=dataserver;uid=dataok;pwd=readdataok'',''select * from t_user where user_no=''' + @uno + ''')')
declare @uno varchar(12)set @uno='123456789' exec( 'select * from openrowset(''sqloledb'',''server=dataserver;uid=dataok;pwd=readdataok'',''select * from t_user where user_no=''' + @uno + ''')')
不行啊! 错误: Server: Msg 170, Level 15, State 1, Line 2 Line 2: Incorrect syntax near '123456789'. Server: Msg 105, Level 15, State 1, Line 2 Unclosed quotation before the character string ')'.
declare @uno varchar(12)set @uno='123456789' exec( 'select * from openrowset(''sqloledb'',''server=dataserver;uid=dataok;pwd=readdataok'',''select * from t_user where user_no=123456789'')') 这样可以。 为什么加参数就不行?
declare @uno char(12) set @uno='123456789'exec(' select * from openrowset(''sqloledb'' ,''server=dataserver;uid=dataok;pwd=readdataok'' ,''select * from t_user where user_no=''''''+@uno+'''''''') ')
--上面错了,再改一下:declare @uno char(12) set @uno='123456789'exec(' select * from openrowset(''sqloledb'' ,''server=dataserver;uid=dataok;pwd=readdataok'' ,''select * from t_user where user_no='+@uno+''') ')
错误:
Incorrect syntax near '+'.
exec( 'select * from openrowset(''sqloledb'',''server=dataserver;uid=dataok;pwd=readdataok'',''select * from t_user where user_no=''' + @uno + ''')')
exec( 'select * from openrowset(''sqloledb'',''server=dataserver;uid=dataok;pwd=readdataok'',''select * from t_user where user_no=''' + @uno + ''')')
错误:
Server: Msg 170, Level 15, State 1, Line 2
Line 2: Incorrect syntax near '123456789'.
Server: Msg 105, Level 15, State 1, Line 2
Unclosed quotation before the character string ')'.
exec( 'select * from openrowset(''sqloledb'',''server=dataserver;uid=dataok;pwd=readdataok'',''select * from t_user where user_no=123456789'')')
这样可以。
为什么加参数就不行?
set @uno='123456789'exec('
select * from openrowset(''sqloledb''
,''server=dataserver;uid=dataok;pwd=readdataok''
,''select * from t_user where user_no=''''''+@uno+'''''''')
')
set @uno='123456789'exec('
select * from openrowset(''sqloledb''
,''server=dataserver;uid=dataok;pwd=readdataok''
,''select * from t_user where user_no='+@uno+''')
')