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

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. Jmeter启动闪退

    背景:使用Jmeter进行性能测试脚本开发,实现Jmeter接口开发Java请求 问题再现: 1.在官网上下载Jmeter3.2版本,打开jmeter.bat,启动成功 2.在IDEA中创建测试项目和 ...

  2. QString std::string 相互转 含中文

    std::string cstr;QString qstring; //QString str1 = " D:\\参考手册\\BIM\\osg\\build1.OSGB"; //从 ...

  3. C++ STL 排列 next_permutation prev_permutation

    #include <iostream>#include <algorithm>#include <vector> using namespace std; int ...

  4. linux简单命令5---开机与重启

    时间可以写为:now.shutdown命令是安全的命令(保存运行程序) 2:下面为其他不安全的关机命令 必须正确退出登录,window是注销

  5. 下了个pkg包的jenkins,的使用方法

    三.如何启动Jenkins1.最简单的方法是双击Jenkins的pkg包,一步一步点同意,默认8080端口2.使用命令行启动打开terminal,进入到war包所在目录,执行命令: java -jar ...

  6. BigDecimal的toString和toPlainString区别

    创建一个BigDecimal的数,分别调用toPlainString和toString方法 import java.math.BigDecimal; public class Test05 { pub ...

  7. 不要在viewWillDisappear:方法中移除通知

    都知道viewWillAppear:方法是在控制器的view将要显示的时候调用的,而viewWillDisappear:方法是在控制器的view将要隐藏的时候调用. 这看上去没什么问题,键盘的显示和隐 ...

  8. glide包管理工具

    上一篇文章中我们已经成功的运行了go的代码,这是我们迈出的最基础的一步. 一个项目通常会依赖很多外部的库,当依赖的库比较多的时候,手工管理就会比较麻烦,这个时候就需要包管理工具出场了,帮你管理好所有依 ...

  9. 最新 咪咕java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.咪咕等10家互联网公司的校招Offer,因为某些自身原因最终选择了咪咕.6.7月主要是做系统复习.项目复盘.LeetCode ...

  10. 最新 浪潮java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.浪潮等10家互联网公司的校招Offer,因为某些自身原因最终选择了浪潮.6.7月主要是做系统复习.项目复盘.LeetCode ...