如何写服务器名为变量的远程建立语句?

disneyzhang 2007-01-15 03:51:33

declare @servername

set @servername='test'

Exec sp_addlinkedserver @srvproduct=N'',@server='srv_link',@provider='MSDASQL',
@provstr='driver={SQL SERVER};server=@servername;id=sa;pwd=12345'

现在的问题是如何将@servername名赋值给server参数呢?
...全文
178 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
disneyzhang 2007-01-16
  • 打赏
  • 举报
回复
UP!
disneyzhang 2007-01-15
  • 打赏
  • 举报
回复
还是不行,是不是不服务器的名称不能作变量呢?
xiequanqin 2007-01-15
  • 打赏
  • 举报
回复
declare @servername varchar(60)

set @servername='test'
declare @STR varchar(255)
select @STR='driver={SQL SERVER};server='+@servername+';id=sa;pwd=12345'

Exec sp_addlinkedserver @srvproduct=N'',@server='srv_link',@provider='MSDASQL',
@provstr=@STR

disneyzhang 2007-01-15
  • 打赏
  • 举报
回复
测试过jetxia 写的语句, 出现下面的错误提示

Server: Msg 7399, Level 16, State 1, Line 67
OLE DB provider 'MSDASQL' reported an error.
[OLE/DB provider returned message: [Microsoft][ODBC SQL Server Driver]Invalid connection string attribute]
disneyzhang 2007-01-15
  • 打赏
  • 举报
回复
不行的,提示错误
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near ','.
jetxia 2007-01-15
  • 打赏
  • 举报
回复

declare @servername varchar(50)

set @servername='test'
declare @tmp varchar(200)
set @tmp='driver={SQL SERVER};server='+@servername+';id=sa;pwd=12345'
Exec sp_addlinkedserver @srvproduct=N'',@server='srv_link',@provider='MSDASQL',
@provstr=@tmp
xiequanqin 2007-01-15
  • 打赏
  • 举报
回复
UP
leo_lesley 2007-01-15
  • 打赏
  • 举报
回复
exec ('Exec sp_addlinkedserver ,@server=''srv_link'',@provider=''MSDASQL'',@provstr=''driver={SQL SERVER};server='+@servername+';id=sa;pwd=12345''')



试试这个
disneyzhang 2007-01-15
  • 打赏
  • 举报
回复
看过邹老师写的书,知道应该采用动态字符串形式,但是还是执行不了!

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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