sql-server - 如何在SQL函数中插入插入语句?

标签 sql-server

这是我正在尝试的功能

CREATE FUNCTION [dbo].[CreateNewRow] 
( @pFirstName VARCHAR(50), @pLastName VARCHAR(50) )
RETURNS INT
AS
BEGIN

INSERT INTO [dbo].[Student] ( [FirstName], [LastName] )
VALUES ( @pFirstName, @pLastName )

RETURN SCOPE_IDENTITY()
END
GO

如果可能,请告诉我替代方法。

最佳答案

插入在 SQL 函数中不起作用,您的函数将给出以下错误。

Server: Msg 443, Level 16, State 2, Procedure CreateNewRow, Line 7 Invalid use of 'INSERT' within a function.

替代方案 使用使用 INSERT 命令的用户定义函数,但修改的表是该函数的本地表变量:

CREATE FUNCTION [dbo].[Ins_GetMaxValue]
( @pInt1 INT, @pInt2 INT, @pInt3 INT, @pInt4 INT )
RETURNS INT
AS
BEGIN
DECLARE @IntTable TABLE ( [IntValue] INT )
DECLARE @MaxValue INT

INSERT INTO @IntTable ( [IntValue] ) VALUES ( @pInt1 )
INSERT INTO @IntTable ( [IntValue] ) VALUES ( @pInt2 )
INSERT INTO @IntTable ( [IntValue] ) VALUES ( @pInt3 )
INSERT INTO @IntTable ( [IntValue] ) VALUES ( @pInt4 )

SELECT @MaxValue = MAX( [IntValue] )
FROM @IntTable

RETURN @MaxValue
END
GO

关于sql-server - 如何在SQL函数中插入插入语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37154917/

相关文章:

c# - SqlConnection 命令在删除时不会引发异常

sql-server - 使用 VBA 通过参数化查询在 Excel 中查询 SQL Server

sql - 如何使用 OR 条件优化日期范围

sql-server - 如何开始使用 SQL Server SSIS?

sql-server - 从日期字段中减去日期

sql - 用户登录后自动在 SQL Server 中创建数据库

c# - 什么时候是 sqlchars 什么时候是 sqlstring?

sql - SQL中如何替换Left Join语句中的部分字符串

mysql - 如何在 MySQL 的 View 中创建临时表

sql-server - 在 Multi-Tenancy 数据库中索引租户 ID