sql server 标量值函数实例与不能调用原因分析
sql server 标量值函数实例与不能调用原因分析
--标量值函数
set ansi_nulls on
go
set quoted_identifier on
go
-- =============================================
-- author: <author,,name>
-- create date: <create date, ,>
-- description: <description, ,>
-- =============================================
create function <scalar_function_name, sysname, functionname>
(
-- add the parameters for the function here
<@param1, sysname, @p1> <data_type_for_param1, , int>
)
returns <function_data_type, ,int>
as
begin
-- declare the return variable here
declare <@resultvar, sysname, @result> <function_data_type, ,int>-- add the t-sql statements to compute the return value here
select <@resultvar, sysname, @result> = <@param1, sysname, @p1>-- return the result of the function
return <@resultvar, sysname, @result>end
用 ms sql 标量值函数,应该在函数前面加上 "dbo.",否则会报 “不是可以识别的 内置函数名称”错误。例如
declare @whichdb tinyint;
select @whichdb = user_getwhichdb(1);--看看是哪个数据库教程的=================================================
--标量值函数
alter function [dbo].[user_getwhichdb]
(
@userid int = 0
)
returns tinyint
with execute as caller
as
begin
declare @whichdb tinyint;
set @whichdb = 1;
if @userid >= 115098
set @whichdb = 2;
return (@whichdb);
end