加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Sql server 在SQL Server中创建存储函数以从序列生成id

发布时间:2022-10-18 19:03:50 所属栏目:MsSql教程 来源:网络
导读: Sql server 在SQL Server中创建存储函数以从序列生成id
sql-server
Sql server 在SQL Server中创建存储函数以从序列生成id,sql-server,Sql Server,我在SQL Server中创建了如下序列:CREATE

Sql server 在SQL Server中创建存储函数以从序列生成id

sql-server

Sql server 在SQL Server中创建存储函数以从序列生成id,sql-server,Sql Server,我在SQL Server中创建了如下序列:CREATE SEQUENCE dbo.cust_acc_seqSTART WITH 1771INCREMENT BY 1 ; GO我试图创建一个存储函数来返回序列中的下一个值,下面是相同的代码CREATE FUNCTION dbo.GetSeq_Cust_Acc()RETURNS VARCHAR(250)AS BEGINDECLARE @Work VARCHAR(250)SET @Work =

我在SQL Server中创建了如下序列:

CREATE SEQUENCE dbo.cust_acc_seq
    START WITH 1771  
    INCREMENT BY 1 ;  
GO

我试图创建一个存储函数来返回序列中的下一个值,下面是相同的代码

CREATE FUNCTION dbo.GetSeq_Cust_Acc()
RETURNS VARCHAR(250)
AS BEGIN
    DECLARE @Work VARCHAR(250)
    SET @Work = NEXT VALUE FOR dbo.cust_add_seq
    RETURN @work
END

但在执行此操作时,我得到了以下错误:

在检查约束、默认对象、计算列、视图、用户定义函数、用户定义聚合、用户定义表类型、子查询、公共表表达式或派生表中不允许使用函数的下一个值

如果在定义存储函数时遗漏了什么mssql 使用序列,请告诉我。

好吧。。。这是不允许的(因为函数不能影响数据)。您可以将其放在存储过程中。但既然它实际上做的不多,为什么还要在函数/存储过程中对其进行平衡呢?还要注意,您的函数正在进行隐式转换(INT到VARCHAR),这是一种不好的做法。@Rakesh您真的确定这是SQL吗?序列用于PLSQLSo,函数的下一个值的哪一部分在..中是不允许的。。。。。您不了解用户定义的函数吗?错误明确表示:不允许在函数中为

使用下一个值。因此,您无法做到这一点-您需要考虑另一种方法来做到这一点(例如对列使用默认约束、触发器或其他方法)

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!