SQLServer2012Function使用SEQUENCE

dotavkings 2015-10-28 06:10:39
各位大牛,我在使用SQLServer2012过程中,编写Function时使用了Seqence,不过执行时报错,错误提示为:
Msg 11719, Level 15, State 1, Procedure:F_GETID,Line:10NEXT VALUE FOR function is not allowed in check constraints, default objects, computed columns, views,user-defined functions, user-defined aggregates, user-defined table types, sub-queries, common tableexpressions, or derived tables.

Function创建如下:
ALTER function [dbo].[F_GETID]()
returns NUMERIC
as
begin
declare @age NUMERIC ;
SELECT @age = NEXT VALUE FOR dbo.SEQ_OWNID
return @age
end

SEQUENCE创建如下:
CREATE SEQUENCE [dbo].[SEQ_OWNID]
AS [numeric](16, 0)
START WITH 2397
INCREMENT BY 1
MINVALUE 1
MAXVALUE 99999999
CYCLE
CACHE 20
GO

请各位大牛告知下,SQLServer2012的Function或者存储过程是否使用 Seqence,另外如果要解决这样的问题怎么处理,谢谢!
...全文
169 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_Nice 2015-10-30
  • 打赏
  • 举报
回复
http://www.sql-server-helper.com/error-messages/msg-11719-user-defined-function.aspx 参考 Causes A sequence is a user-defined schema-bound object that generates a sequence of numeric values according to the specification with which the sequence object was created. The sequence of numeric values is generated in an ascending or descending order at a defined interval and may cycle or repeat as requested. Sequences, unlike identity columns, are not associated with tables. A sequence is created independently of table objects by using the CREATE SEQUENCE statement. Options enable you to control the increment, maximum and minimum values, starting point, automatic restarting capability, and caching to improve performance. 里面这段cause写的挺到位的。
LongRui888 2015-10-30
  • 打赏
  • 举报
回复
上面提示的错误就是 不允许在 用户定义函数中使用 序列,另外,视图、计算列、check约束 也是不能用序列的。 既然在函数中不能使用,我建议你直接在你的代码里调用:
CREATE SEQUENCE [dbo].[SEQ_OWNID] 
 AS [numeric](16, 0)
 START WITH 2397
 INCREMENT BY 1
 MINVALUE 1
 MAXVALUE 99999999
 CYCLE 
 CACHE  20 
GO

SELECT NEXT VALUE FOR dbo.SEQ_OWNID 
/*
2399
*/
Tiger_Zhao 2015-10-29
  • 打赏
  • 举报
回复
提示很明白了,不能用在 user-defined functions 中。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧