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 , UNION , UNION ALL , EXCEPT 或 INTERSECT 运算符的语句中。
· 在使用 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,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吗?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Micronaut使用提前编译支持Spring Boot
- GCC 10支持使用SSE指令模拟MMX
- 阿里云支持使用 Keepalived 搭建负载均衡软件吗?
- Spring Cloud 参考文档(使用Sidecar支持多语言)
- 技术支持垃圾邮件使用iframe“冻结”浏览器
- 使用 Frp 为你的 Web 服务添加 https 支持
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
TensorFlow实战
黄文坚、唐源 / 电子工业出版社 / 2017-2-1 / 79
Google近日发布了TensorFlow 1.0候选版,这个稳定版将是深度学习框架发展中的里程碑的一步。自TensorFlow于2015年底正式开源,距今已有一年多,这期间TensorFlow不断给人以惊喜,推出了分布式版本,服务框架TensorFlow Serving,可视化工具TensorFlow,上层封装TF.Learn,其他语言(Go、Java、Rust、Haskell)的绑定、Wind......一起来看看 《TensorFlow实战》 这本书的介绍吧!