日期:2014-05-17  浏览次数:20445 次

SQL 字符串内加变量的问题
跨服务器查询数据。如下:

exec sp_addlinkedserver 'link','','SQLOLEDB','192.168.1.4'
exec sp_addlinkedsrvlogin 'link','false',null,'sa','******'
------添加链接服务器
declare @depid1 varchar(50)
set @depid1='p1000'
select * FROM openquery(link,'SELECT *  FROM database.dbo.james_dep where depid='+@depid1+'') 


如果无where depid='+@depid1@+'条件,则可以成功查询数据。添加条件查询后,则报错‘消息 102,级别 15,状态 1,第 5 行'+' 附近有语法错误。’
where depid='+@depid1+'   这个条件有错么?

------解决方案--------------------
应该是少引号了
------解决方案--------------------
呵呵,那就是变量也不行,只能干用字符串啊,这个函数就是这样的语法没办法
如果实在是想拼接的话,可以用exec('')这样的形式来执行