垮库只能读操作,写操作需要设置权限。

USE [jdddb]
GO
/****** Object: StoredProcedure [dbo].[proc_LYOrderCancel] Script Date: 02/07/2017 11:18:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: 赵伟
-- Create date: 20170122
-- Description: 疗养宝订单取消
-- =============================================
--EXEC proc_LYOrderCancel '15201701201037185748','xf0057',17,1,37125,141129,'2017-01-20',1,0
ALTER PROCEDURE [dbo].[proc_LYOrderCancel]
(
@orderSn VARCHAR(100),
@userName NVARCHAR(100), --用户名称
@orderType INT, --订单类型
@status INT, --订单当前状态
@jdid INT, --酒店ID
@fjlxid INT, --房间ID
@idate DATETIME, --预订时间
@num INT , --入住天数,用于减房态
@flag INT OUTPUT --返回标识
)
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
IF EXISTS(SELECT srvname FROM MASTER.DBO.SYSSERVERS WHERE SrvName='172.18.105.63')
BEGIN
EXEC SP_DROPSERVER '172.18.105.63','DropLogins'
END
EXEC sp_addlinkedserver '172.18.105.63',N'SQL Server'
EXEC sp_addlinkedsrvlogin '172.18.105.63', 'false', NULL, 'test', 'xinfuka' BEGIN TRANSACTION IF EXISTS(SELECT Id FROM [172.18.105.63].[Xinfu0816].[dbo].[Orders] WHERE OrderType=@orderType AND OrderSn=@orderSn AND UserName=@userName)
BEGIN
UPDATE [172.18.105.63].[Xinfu0816].[dbo].[Orders] SET [Status]=4 WHERE OrderType=@orderType AND OrderSn=@orderSn AND UserName=@userName
END IF EXISTS(SELECT 1 FROM dbo.JD_Orders WHERE orderType=@orderType AND OrderSn=@orderSn AND ydr=@userName)
BEGIN
UPDATE dbo.JD_Orders SET zt=4 WHERE orderType=@orderType AND OrderSn=@orderSn AND ydr=@userName
END IF(@status!=2)--待支付的不需要减房态
BEGIN DECLARE @col VARCHAR(100);
SET @col ='sl'+ CONVERT(varchar(100),DATEPART(DAY,@idate));
IF EXISTS(SELECT id FROM dbo.JD_FT WHERE jdid=@jdid AND fjlxid=@fjlxid AND iyear=DATEPART(YEAR,@idate) AND imonth=DATEPART(MONTH,@idate))
BEGIN
DECLARE @sql VARCHAR(1000);
SET @sql='UPDATE dbo.JD_FT SET '+@col+'='+@col+'-'+CONVERT(VARCHAR(10),@num)+' WHERE jdid='+CONVERT(VARCHAR(10),@jdid)+' AND fjlxid='+CONVERT(VARCHAR(10),@fjlxid)+' AND iyear='+CONVERT(VARCHAR(10),DATEPART(YEAR,@idate))+' AND imonth='+CONVERT(VARCHAR(10),DATEPART(MONTH,@idate))+''
PRINT @sql;
EXEC(@sql);
--UPDATE dbo.JD_FT SET @col=@col-@num
--WHERE jdid=@jdid AND fjlxid=@fjlxid AND iyear=DATEPART(YEAR,@idate) AND imonth=DATEPART(MONTH,@idate)
END
END SET @flag=1;
COMMIT TRANSACTION
END TRY
BEGIN CATCH
SET @flag=-1;
ROLLBACK TRANSACTION
/*定义要返回的异常信息变量*/
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
/*收集可能出现的异常信息*/
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
/*抛出异常*/
RAISERROR (@ErrorMessage, -- Message text.
@ErrorSeverity, -- Severity.
@ErrorState -- State.
);
END CATCH
END

sqlserver跨库操作数据的更多相关文章

  1. SqlServer跨库查询

    由于业务的拆分,数据库拆分为两种作用: 汇总数据库(Master,头节点数据库), 子节点数据库(Compute Node,计算子节点数据库) 这样,就设计到子节点访问头节点数据库中的某张汇总表,这种 ...

  2. SQLServer跨库查询--分布式查询

    出处:http://www.cnblogs.com/doosmile/archive/2012/03/16/2400646.html --用openrowset连接远程SQL或插入数据 --如果只是临 ...

  3. SQLServer跨库查询--分布式查询(转载)

    --用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset('SQLOLEDB' ,'sq ...

  4. SqlServer 跨库访问

    同实例跨库 只需要 库名.dbo.表 dbo可省略 如: use Test select * from rdrecords select * from oa.dbo.UserInfo 不同实例与不同i ...

  5. SQLServer 跨库查询实现方法

    不使用链接的服务器名,而提供特殊的连接信息,并将其作为四部分对象名的一部分 本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权限SQL Serve ...

  6. Postgresql ODBC驱动,用sqlserver添加dblink跨库访问postgresql数据库

    在同样是SQLserver数据库跨库访问时,只需要以下方法 declare @rowcount int set @rowcount =(select COUNT(*) from sys.servers ...

  7. 关于SqlServer远程跨库修改数据

    今天遇到一个需求需要修改远程服务器上的数据,如何直接修改,并且垮库,跨库简单,直接加上数据库名字,远程的话则需要创建链接服务器,具体步骤如下: --创建链接服务器  exec sp_addlinked ...

  8. sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接服务器)

    sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接服务器) 我们日常使用SQL Server数据库时,经常遇到需要在实例Instance01中跨实例访问Instanc ...

  9. SQL Server跨库查询

    方式一: 语句 SELECT * FROM 数据库A.dbo.表A a, 数据库B.dbo.表B b WHERE a.field=b.field "DBO"可以省略 如 SELEC ...

随机推荐

  1. git 优雅的撤销中间某次提交

    环境git : 2+ 前言最近两天,公司的git合并代码时,出现了严重的问题,浪费很多时间: 现在记录下: 情况是这样的,一个同事自己的本地分支(远程没有),不知怎么的,有了别人开发分支的代码,而他自 ...

  2. Linux通过AIO进行异步读文件

    下面列出源代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <a ...

  3. log4net通过代码控制按分类输出

    应用场景: 比如我们系统有5个任务,每个任务都是独立的流程,按照传统的方式这些流程的数据会输出到一起,这无疑给我们排查问题增加了难度,因为我们需要的是每一个任务一个独立的输出文件,比如任务A输出到lo ...

  4. 大数据(2)---HDFS集群搭建

    一.准备工作 1.准备几台机器,我这里使用VMware准备了四台机器,一个name node,三个data node. VMware安装虚拟机:https://www.cnblogs.com/niju ...

  5. XHProf报告字段含义

    Function Name:方法名称. Calls:方法被调用的次数. Calls%:方法调用次数在同级方法总数调用次数中所占的百分比. Incl.Wall Time(microsec):方法执行花费 ...

  6. Spark On YARN(Yarn-Cluster模式)启动流程源码分析(二)

    转自:https://www.cnblogs.com/yy3b2007com/p/11087180.html 本章将针对yarn-cluster(--master yarn –deploy-mode ...

  7. jmeter5实现文件上传接口测试

    背景:在公司做接口自动化编写过程中,遇到需要测试一个在线下载导入模板的接口,之前都没有接触过关于文件上传下载的接口测试,此处做个记录,为后续工作开展做个参考. 步骤: 打开浏览器按F12 手动进行文件 ...

  8. 机器学习笔记——k-近邻算法(一)简单代码

    一 import numpy as np ##初始化数据 T = [[3, 104, -1], [2, 100, -1], [1, 81, -1], [101, 10, 1], [99, 5, 1], ...

  9. 《精通并发与Netty》学习笔记(13 - 解决TCP粘包拆包(一)概念及实例演示)

    一.粘包/拆包概念 TCP是一个“流”协议,所谓流,就是没有界限的一长串二进制数据.TCP作为传输层协议并不不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行数据包的划分,所以在业务上认 ...

  10. ffmpeg学习笔记-native原生绘制

    上次已将ffmpeg的动态库编译出来了,并且使用了ffmpeg的转码功能,成功将mp4格式视频转化为yuv视频,这篇文章基于上次测试的demo,使用surfaceview显示解码完成的像素数据 布局设 ...