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

栏目: 数据库 · SQL Server · 发布时间: 5年前

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

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 UNIONUNION ALLEXCEPT INTERSECT   运算符的语句中。

·          在使用 ORDER BY 子句的语句中,除非使用了 NEXT VALUE FOROVER (ORDER BY)

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

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

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

·          在检查约束的定义中。

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

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

·          在使用   TOP OFFSET   的语句中,或在设置   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吗?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

阿里传

阿里传

波特·埃里斯曼 / 张光磊、吕靖纬、崔玉开 / 中信出版社 / 2015-9-15 / CNY 49.00

你只知道阿里巴巴故事的中国部分,而这本书会完整呈现故事的全部。 波特•埃里斯曼是阿里巴巴创业时期为数不多的外国高管。他于2000~2008年在阿里巴巴担任副总裁,这本书记录了他在阿里巴巴8年的时间里的创业故事、商业经验以及在阿里巴巴和马云、蔡崇信、关明生等阿里巴巴早期团队并肩奋战的故事。 在波特眼中,阿里巴巴的成功经验和模式是可以复制的,阿里巴巴曾经犯过的错误,走过的弯路,我们也可以绕......一起来看看 《阿里传》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具