SQL Server的Linked Server支持使用SEQUENCE吗?

 

SQL Server 2012开始支持序列(SEQUENCE),今天遇到有个同事咨询,能否在LINKED SERVER里面调用SEQENCE, 结果我测试发现不行,但是不管官方文档也好,网上相关资料也罢,都没有说支持,也没有说不支持。

例如官方文档NEXT VALUE FOR (Transact-SQL)中明确表示那些情况不支持使用序列的NEXT VALUE FOR函数。(如下所示,没有提及LINKED SERVER)

 

不能在下列情况下使用 NEXT VALUE FOR 函数:

·         数据库处于只读模式时。

·         作为表值函数的参数。

·         作为聚合函数的参数。

·         在子查询中,包括公用表表达式和派生表。

·         在视图、用户定义的函数或计算列中。

·         在使用 DISTINCT,UNION ,UNION ALL,EXCEPTINTERSECT 运算符的语句中。

·         在使用 ORDER BY 子句的语句中,除非使用了 NEXT VALUE FOR …OVER (ORDER BY …)。

·         在以下子句中:FETCH,OVER,OUTPUT,ON,PIVOT,UNPIVOT,GROUP BY,HAVING,COMPUTE,COMPUTE BY 或 FOR XML

·         在使用 CASE,CHOOSE,COALESCE,IIF,ISNULLNULLIF 的条件表达式中。

·         在不属于 INSERT 语句的 VALUES 子句中。

·         在检查约束的定义中。

·         在规则或默认对象的定义中。 (它可用于默认约束。)

·         作为用户定义表类型中的默认值。

·         在使用 TOPOFFSET 的语句中,或在设置 ROWCOUNT 选项时。

·         在语句的 WHERE 子句中。

·         在 MERGE 语句中。 (在目标表的默认约束中使用 NEXT VALUE FOR 函数并且在 MERGE 语句的 CREATE 语句中使用默认值的情况下例外。)

如下所示,这种写法是不支持的(SSMS中执行会直接报错),查了大量的资料,发现没有什么资料涉及这方面(当然,这种需求本身也是不合理的)。所以,经过验证、测试,可以明确的是: SQL Server中Linked Server不支持使用SEQUENCE。

 

SELECT NEXT VALUE FOR [LINK_SERVER_NAME].YourSQLDba.dbo.TEST_SEQ;

简单测试,发现可以使用OPENQUERY来解决这个问题。如下所示:

SELECT   FROM OPENQUERY([LINK_SERVER_NAME], 'SELECT NEXT VALUE FOR YourSQLDba.dbo.TEST_SEQ');

另外,也可以将序列放到存储过程中,通过连接服务器调用存储过程,间接调用SEQUENCE。

CREATE PROCEDURE PRC_TEST

AS

BEGIN 

SELECT NEXT VALUE FOR dbo.TEST_SEQ;

END

 

 

EXEC [LINK_SERVER_NAME].YourSQLDba.[dbo].PRC_TEST

参考资料:

https://docs.microsoft.com/en-us/sql/t-sql/functions/next-value-for-transact-sql?view=sql-server-2017

SQL Server的Linked Server支持使用SEQUENCE吗?的更多相关文章

  1. SQL Server ->> 建立linked server到Azure SQL Server

    EXEC master.dbo.sp_addlinkedserver @server = N'<nick_name_to_use>', @srvproduct=N'', @provider ...

  2. mysql-Federated存储方式,远程表,相当于sql server的linked server

    MySQL中针对不同的功能需求提供了不同的存储引擎.所谓的存储引擎也就是MySQL下特定接口的具体实现. FEDERATED是其中一个专门针对远程数据库的实现.一般情况下在本地数据库中建表会在数据库目 ...

  3. 【3.3】mysql中的Federated存储引擎,远程表,相当于sql server的linked server

    MySQL中针对不同的功能需求提供了不同的存储引擎.所谓的存储引擎也就是MySQL下特定接口的具体实现. FEDERATED是其中一个专门针对远程数据库的实现.一般情况下在本地数据库中建表会在数据库目 ...

  4. SQL Server的Linked Servers

    文章搬运自:SQL Server的Linked Servers(链接) 参考引用一下,感谢作者~ 我们在使用SQL Server时,有时会有这种需求,需要从一个SQL Server服务器A中,查询另一 ...

  5. SQL Server的Linked Servers(链接)

    我们在使用SQL Server时,有时会有这种需求,需要从一个SQL Server服务器A中,查询另一个SQL Server服务器B中的表,然后将SQL Server服务器A中的表和SQL Serve ...

  6. Distributed1:Linked Server 添加和删除

    A linked server allows for access to distributed, heterogeneous queries against OLE DB data sources. ...

  7. Cannot obtain the required interface ("IID_IDBCreateCommand") from OLE DB provider "OraOLEDB.Oracle" for linked server xxxx

      今天遇到了一个关于LINKED SERVER查询报错的案例,链接服务器链接ORACLE数据库,测试没有错误,但是执行脚本的时候,报如下错误: Msg 7399, Level 16, State 1 ...

  8. SQL Server 2017的Linked Server配置触发的bug“Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION”

    SQL Server 2017的Linked Server配置触发的bug"Exception Code    = c0000005 EXCEPTION_ACCESS_VIOLATION&q ...

  9. MS SQL 错误:The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "test" was unable to begin a distributed transaction.

       一同事在测试服务器(系统:Windows 2008 R2 Standard 数据库:SQL SERVER 2008 R2)通过链接服务器test使用分布式事务测试时出错,出错信息如下: set ...

随机推荐

  1. PAT1101:Quick Sort

    1101. Quick Sort (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CAO, Peng There is a ...

  2. String的charAt(int index)可用于遍历一个字符串的所有字符

    charAt(int index)遍历一个字符串的所有字符实例 String name = "Whatisjava?"; for (int i = 0; i < name.l ...

  3. capwap学习笔记——初识capwap(二)(转)

    2.5.1 AC发现机制 WTP使用AC发现机制来得知哪些AC是可用的,决定最佳的AC来建立CAPWAP连接. WTP的发现过程是可选的.如果在WTP上静态配置了AC,那么WTP并不需要完成AC的发现 ...

  4. 一个比ack速度快n倍的代码搜索工具: ag

    一个比ack速度快n倍的代码搜索工具:  ag 银搜索者(The Silver Searcher) 一个类似于代码搜索工具ack,着重于速度. Github:   https://github.com ...

  5. Java Persistence/ManyToMany

    A ManyToMany relationship in Java is where the source object has an attribute that stores a collecti ...

  6. 【新手向】自用的tooltip小插件,前端插件知识科普~

    上面的tooltip就是成品图,为了和自己站点的风格保持一致所以自己写的. 第一部分:你绝对碰到过的匿名函数闭包问题 第二部分:写个tooltip demo 第三部分:源码地址 第一部分 你绝对碰到过 ...

  7. 34.如何获取app(apk和ipa)中的资源

    移动互联网中,主要的两个平台是android和ios,android上文件的安装包是后缀名为apk的文件,ios上文件的安装包是后缀名为ipa的文件,在本文分析一下这两种文件的特点,以及如何用程序去解 ...

  8. 用java8重写Arrays.sort(oldWay, new Comparator<String>(){@Override public int compare(String s1, String s2)});

    参考https://www.liaoxuefeng.com/article/001411306573093ce6ebcdd67624db98acedb2a905c8ea4000/ Java 8终于引进 ...

  9. search_response.go

    package; iScore < utils.MinInt(len(docs[i].Scores), len(docs[j].Scores)); iScore++ {         if d ...

  10. BZOJ_4516_[Sdoi2016]生成魔咒_后缀数组+ST表+splay

    BZOJ_4516_[Sdoi2016]生成魔咒_后缀数组+ST表+splay Description 魔咒串由许多魔咒字符组成,魔咒字符可以用数字表示.例如可以将魔咒字符 1.2 拼凑起来形成一个魔 ...