相要达到下面效果:
SELECT * FROM OPENQUERY(@lnk,EXEC @db.dbo.@p @a='a1',@b=0)说明:
@lnk为链接服务器
@db为链接服务器的数据库
@p为链接服务器的数据库中的存储过程
@a和@b为存储过程中的变量问题:我知道SELECT * FROM OPENQUERY(lnkName,'EXEC dbName.dbo.p ''a1'',0')的写法,但此时链接服务器、数据库和存储过程名称均为变量,而且存储过程中的参数还不只一个,如何处理?火线求助!
就只能用动态SQL了----------------------------------------------------------
相要达到下面效果:
SELECT * FROM OPENQUERY(@lnk,EXEC @db.dbo.@p @a='a1',@b=0)
----------------------------------------------------------这个效果指的是 把存储过程返回的结果 查询出来吗?还是只激活存储过程就可以了?
如果这个可以:SELECT * FROM OPENQUERY(@lnk,EXEC @db.dbo.@p @a='a1',@b=0) 那么这个就应该可以了
exec('SELECT * FROM OPENQUERY( '+@lnk+' ,EXEC '+@db+'.dbo.'+@p+' '+@a+'=''a1'','+@b+'=0)')
SELECT * FROM OPENQUERY(@lnk,EXEC @db.dbo.@p @a='a1',@b=0) 说明:
@lnk为链接服务器
@db为链接服务器的数据库
@p为链接服务器的数据库中的存储过程
@a和@b为存储过程中的变量 问题:我知道SELECT * FROM OPENQUERY(lnkName,'EXEC dbName.dbo.p ''a1'',0')的写法,但此时链接服务器、数据库和存储过程名称均为变量,而且存储过程中的参数还不只一个,如何处理? 火线求助!
先传给变量,
再取变量。
用
exec ('..')