• SQL Server 2008 局域网跨服务器T-SQL操作(一)


    --查看当前链接情况:
    select * from sys.servers;
    
    --增加链接,参数:服务器别名,为链接服务器的OLE DB数据源的产品名称,与此数据源对应的OLE DB访问接口的唯一编程标识符(PROGID),由OLE DB访问接口解释的数据源的名称 
    --这种设置链接服务器的方式强制链接服务器的名称与 SQL Server 远程实例的网络名称相同,也就是计算机名称
    参考:https://msdn.microsoft.com/zh-cn/library/ms190479.aspx
    EXEC sp_addlinkedserver
    @server=N'WIN-6SK2NQX',
    @srvproduct=N'',
    @provider=N'SQLOLEDB',
    @datasrc=N'192.168.35.6'
    
    --增加用户登录链接,参数:被访问的服务器别名,是否通过模拟本地登录名或显式提交登录名和密码来连接,是否本地登录,登录用户名,登录密码 

    参考:https://msdn.microsoft.com/zh-cn/library/ms189811.aspx
     EXEC sp_addlinkedsrvlogin 'WIN-6SK2NQX','false',NULL,'sa','server' 

    --使用 sp_helpserver 来显示可用的链接服务器
    Exec sp_helpserver

    --删除已经存在的某个链接,参数:服务器别名,本地服务器上的SQL Server登录。如果要删链接,则先要删除登录映射

    参考:https://msdn.microsoft.com/zh-cn/library/ms186218(v=sql.120).aspx
    Exec sp_droplinkedsrvlogin 'WIN-6SK2NQX',NULL 
    Exec sp_dropserver 'WIN-6SK2NQX'

    --应用:链接别名.数据库名.表名
    SELECT * from CEM1.[Test2.1].dbo.userinfo

    如果在操作过程中遇到“其他会话正在使用事务的上下文”错误,我是在触发器中使用这个方式操作链接数据库的,发生了这个错误。

    一种解释:查看一下该存储过程中是否有链接服务器指向本地,SQLSERVER2005不支持在分布式事务处理中存在指向本地的链接服务器(环回链接服务器)
    又一种解释:其原因是由于计算机名和sql server 2005的servername不一致所致。
    可以通过 select @@servername 
    查看数据库中的计算机网络名,重新按照这个名字添加一下链接服务器使用
     
  • 相关阅读:
    Spring DI模式 小样例
    java中经常使用的日期格式化(全)
    循环-15. 统计素数并求和(20)
    [Unity3D]Unity3D游戏开发之自己主动寻路与Mecanim动画系统的结合
    【UVA】11732
    Mac OS使用技巧之十六:系统失去响应怎么办?
    C# 保存窗口为图片(保存纵断面图)
    Linux Resin 安装
    Etcd学习(二)集群搭建Clustering
    android中选择控件与选择界面自然过度效果的实现--一种新的交互设计
  • 原文地址:https://www.cnblogs.com/sky-gfan/p/5461617.html
Copyright © 2020-2023  润新知