请问如何将变量传递到函数内部.

dghrkj 2007-11-24 08:34:01
这一句运行正常,并有返回记录.
SELECT a.*
FROM OPENROWSET('SQLOLEDB','SERVER';'sa';'my1234','SELECT * FROM pubs.dbo.authors') AS a
GO

下面这一句运行提示错误如下:

declare @lc_sql_server char(20), @lc_sql_user char(20), @lc_sql_passw char(20)
select @lc_sql_server='SERVER', @lc_sql_user='sa', @lc_sql_passw='my1234'

SELECT a.*
FROM OPENROWSET('SQLOLEDB',@lc_sql_server;@lc_sql_user;@lc_sql_passw,'SELECT * FROM pubs.dbo.authors') AS a
GO

服务器: 消息 170,级别 15,状态 1,行 5
第 5 行: '@lc_sql_server' 附近有语法错误。

请问如何将变量传递到函数内部?
...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dghrkj 2007-11-24
  • 打赏
  • 举报
回复
按照楼上的方法,对于一个表的查询还可以, 但是如果连结多个表,语句很长(几十行), 还要用这种写法吗? 有没有其他方便的写法呢?
如下面的语句.

select top 10 a.id_chpch_b, a.id_pingm, b.date_chk, c.pingm, c.dw, d.shul_xd, e.dind_bh
from btr_chpch_m a
left outer join btr_chpch_b b on a.id_chpch_b=b.id_chpch_b
left outer join OPENROWSET('SQLOLEDB','server';'sa';'my1234','SELECT * FROM yx_erp.dbo.bmt_pingm') as c on a.id_pingm=c.id_pingm
left outer join btr_dind_m d on a.id_dind_m=d.id_dind_m
left outer join btr_dind_b e on d.id_dind_b=e.id_dind_b
where c.id_pingm is not null

fa_ge 2007-11-24
  • 打赏
  • 举报
回复


declare @server varchar(100),@user varchar(10),@password varchar(10),@str varchar(1000)
set @server='192.168.10.205'
set @user='sa'
set @password='00000'

set @str='select * from '+
+ 'openrowset(''sqloledb.1'', '''+ @server +''' ; '''+@user +''';'''+ @password +''',''select top 3* from pubs.dbo.jobs'')'
exec(@str)

/*
job_id job_desc min_lvl max_lvl
------ -------------------------------------------------- ------- -------
1 New Hire - Job not specified 200 10
2 Chief Executive Officer 180 250
3 Business Operations Manager 175 225
*/
elvis_gao 2007-11-24
  • 打赏
  • 举报
回复

declare @lc_sql_server char(20), @lc_sql_user char(20), @lc_sql_passw char(20)
select @lc_sql_server='''TRAINING-001''', @lc_sql_user='''sa''', @lc_sql_passw='''sa'''
declare @str nvarchar(200)
set @str = 'SELECT a.*
FROM OPENROWSET(''SQLOLEDB'',' +@lc_sql_server+ ';' +@lc_sql_user +';'+ @lc_sql_passw +',''SELECT * FROM aa.dbo.tt'') AS a'
exec(@str)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧