sql-server – create function必须是批处理中唯一的语句

我从函数中得到这个错误
CREATE FUNCTION getLavel(@id int,@lavel char)
RETURNS date
BEGIN
 DECLARE @date date
    select @date = (select authorization_date from Authorized WHERE diver_number = @id and @lavel =level_name)
    return @date
END
GO

可能是什么原因?

非常.

解决方法

将其转换为内联表值函数.这将比标量函数表现更好.此外,您不应使用字符数据类型的认大小.你知道char的认长度是多少吗?你知道它可以根据使用情况而有所不同吗?
CREATE FUNCTION getLavel
(
    @id int,@lavel char --You need to define the length instead of the default length
) 
RETURNS table
return 
    select authorization_date 
    from Authorized 
    WHERE diver_number = @id 
        and @lavel = level_name

GO

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...