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