zoukankan      html  css  js  c++  java
  • 环回链接服务器

    USE [master]
    GO
    --查看测试环境
    SELECT @@SERVERNAME,@@VERSION
    
    /*
    Roy-PC	Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)   Apr  2 2010 15:48:46   Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) 
    */
    
    --创建链接服务器ROY_LNK
    EXEC master.dbo.sp_addlinkedserver @server = N'ROY_LNK', @srvproduct=N'ROY_LNK', @provider=N'SQLOLEDB', @datasrc=N'XXX.XXX.X.XXX'--也可用SQLNCLI\SQLOLEDB
    EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'ROY_LNK', @locallogin = NULL , @useself = N'False', @rmtuser = N'sa', @rmtpassword = N'wuxi'
    GO
    USE Test
    GO 
    IF OBJECT_ID('T') IS NULL
    	SELECT 1 AS ID INTO T
    go
    SELECT 
    go
    IF OBJECT_ID('P1','P') IS NOT NULL
    	DROP PROCEDURE P1
    go
    CREATE PROCEDURE P1
    AS
    SELECT * FROM [ROY_LNK].test.dbo.T
    go
    
    IF OBJECT_ID('P2','P') IS NOT NULL
    	DROP PROCEDURE P2
    GO
    CREATE PROCEDURE P2
    AS
    SET XACT_ABORT ON;
    BEGIN TRAN
    	EXEC [ROY_LNK].test.dbo.P1
    COMMIT TRAN
    GO
    --第1次运行出现
    
    exec P2
    
    --提示以下错误时
    /*
    消息 7411,级别 16,状态 1,过程 P2,第 5 行
    未将服务器 'ROY_LNK' 配置为用于 RPC。
    */
    
    --开启RPC
    
    EXEC master.dbo.sp_serveroption @server=N'ROY_LNK', @optname=N'rpc out', @optvalue=N'true'
    
    GO
    --第2次运行(环回链接服务器)
    exec P2
    /*
    消息 3910,级别 16,状态 2,第 1 行
    其他会话正在使用事务的上下文。
    
    */
    
    --解决方法
    
    GO
    ALTER PROCEDURE P1
    AS
    SELECT * FROM test.dbo.T
    GO
    
    exec P2 
    /*
    ID
    1
    */
    DROP PROC p1,p2
    DROP TABLE T



  • 相关阅读:
    数据库表结构变动发邮件脚本
    .net程序打包部署
    无法登陆GitHub解决方法
    netbeans 打包生成 jar
    第一次值班
    RHEL6 纯命令行文本界面下安装桌面
    C语言中格式化输出,四舍五入类型问题
    I'm up to my ears
    How to boot ubuntu in text mode instead of graphical(X) mode
    the IP routing table under linux@school
  • 原文地址:https://www.cnblogs.com/Roy_88/p/5463059.html
Copyright © 2011-2022 走看看