如何使用 T-SQL 脚本打开与 SQL Server 的连接并执行 ETL 任务?

How I can open a connection to a SQL Server by using T-SQL script and execute a ETL task?

提问人:SS-KH 提问时间:10/25/2023 最后编辑:marc_sSS-KH 更新时间:10/25/2023 访问量:39

问:

当我尝试这个脚本时,我收到一个错误,指示登录失败。但是,我能够正常地从 SSMS 环境启动与服务器的连接

USE MyDB;
GO

TRUNCATE TABLE MyDB.dbo.MyTable

EXEC sp_addlinkedserver 'MySer', N'SQL Server';
EXEC sp_addlinkedsrvlogin 'MySer', 'false', 'Uname', 'pw';

INSERT INTO dbo.MyTable (ID, Name, NameEn, Acronym)
    SELECT 
        r.R_Id, 
        r.R_Desc, 
        r.R_Desc_E, 
        ''
    FROM 
        MySer.RemoteDB.dbo.RemoteTable r;
T-SQL SSMS

评论


答:

1赞 EvgenyM 10/25/2023 #1

对于链接服务器,请添加数据源和目录。

EXEC master.dbo.sp_addlinkedserver 
      @server = N'MySer', 
      @srvproduct=N'', 
      @provider=N'SQLNCLI11', 
      @datasrc=N'YourRegistratedServerName', 
      @catalog=N'RemoteDB';
    go
    EXEC master.dbo.sp_addlinkedsrvlogin 
      @rmtsrvname=N'MySer',
      @useself=N'False',
      @locallogin=NULL,
      @rmtuser=N'Uname',
      @rmtpassword = N'pw' ;

评论

0赞 Jeremy Caney 10/26/2023
感谢您对 Stack Overflow 社区的贡献。这可能是一个正确的答案,但提供代码的额外解释,以便开发人员能够理解你的推理,这将是非常有用的。这对于不熟悉语法或难以理解概念的新开发人员特别有用。为了社区的利益,您能否编辑您的答案以包含其他详细信息?