sql-server - 在 SQL UDF 中插入记录并返回 Id?

标签 sql-server sql-server-2008

我需要一个用户定义的函数来插入新记录并返回 Id,这可能吗?我该怎么做?

我尝试使用插入语句创建函数,但出现以下错误:

Invalid use of the side-affecting operator 'INSERT' within a function.

我正在使用 SQL Server 2008。

更新 SQL:

CREATE FUNCTION dbo.GetNewBookingReference()

RETURNS int

AS

BEGIN

INSERT INTO BookingReference
(CreatedTime, CreatedByUserId)
VALUES
    (GETDATE()
    ,10)

RETURN @@IDENTITY

END

谢谢

最佳答案

在 SQL Server 中,用户定义的函数不能更改数据库状态。您必须使用带有 OUTPUT 参数的存储过程。

关于sql-server - 在 SQL UDF 中插入记录并返回 Id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1216315/

相关文章:

sql - 如何查看来 self 的程序的 SQL Server 查询?

sql - 使用变量简化 SQL 查询

sql-server - Azure SQL 服务器集允许在 ARM 模板或 PowerShell 中访问 Azure 服务

sql - 如何在 SQL SERVER 2008 中启用字母(A、B、C、D...)自动递增?

c# - Entity Framework 中一个或多个实体对可空 bool 属性的验证失败

sql - SQL 从每个逗号分隔值中获取正确的值

mysql - 在 Web UI 中使用 UDF 进行查询

sql - 在一列中查找 n 个最大值

sql - 为数据表中的每一行选择 COUNT(foreign ID)

sql - 按日期字段的月份排序记录