㈠ sql有哪幾種用戶自定義函數,區別是什麼
用戶定義的函數有標量函數和表值函數兩種,其中表值函數又分為內聯表值函數和多語句表值函數。
㈡ [轉載]SQL Server用戶自定義函數中如何使用Getdate()
create view v_getdateasselect getdate() [output]go---------------------------------------------------------------
create function f_getdate()
returns datetimeasbegindeclare @n datetime
select @n = output from v_getdatereturn(@n)endgo---------------------------------------------------------------
調用:select dbo.f_getdate()
======================================================================
-----以下是解析--------
應為function內部不允許使用
函數可以是確定的或不確定的。如果任何時候用一組特定的輸入值調用函數時返回的結果總是相同的,則這些函數為確定的。如果每次調用函數時即使用的是相同的一組特定輸入值,返回的結果總是不同的,則這些函數為不確定的。
不確定的函數會產生副作用。副作用是更改資料庫的某些全局狀態,比如更新資料庫表或某些外部資源,如文件或網路等(例如,修改文件或發送電子郵件消息)。
不允許在用戶定義函數主體中內置不確定函數;這些不確定函數如下:
@@CONNECTIONS @@TOTAL_ERRORS
@@CPU_BUSY @@TOTAL_READ
@@IDLE @@TOTAL_WRITE
@@IO_BUSY GETDATE
@@MAX_CONNECTIONS GETUTCDATE
@@PACK_RECEIVED NEWID
@@PACK_SENT RAND
@@PACKET_ERRORS TEXTPTR
@@TIMETICKS
盡管在用戶定義函數主體中不允許有不確定函數,這些用戶定義函數在調用擴展存儲過程時仍會產生副作用。
由於擴展存儲過程會對資料庫產生副作用,因此調用擴展存儲過程的函數是不確定的。當用戶定義函數調用會對資料庫產生副作用的擴展存儲過程時,不要指望結果集保持一致或執行函數。
㈢ SQL_用戶定義函數
你需要返回一個TABLE
CREATEFUNCTIONSP_CALC
(@deptVARCHAR(50)---部門編號
)
RETURNS@tTABLE(salAvgfloat,salSumfloat)
AS
BEGIN
計算過程
INSERT@t(salAvg,salSum)VALUES(你計算的值)
RETURN
END
GO
㈣ SQL創建用戶自定義函數
樓主我只寫了其中一個..基本方法都如此,希望對您有幫助,代碼如下
ALTER
FUNCTION
[dbo].[sum]
(
@class
varchar(100),
--所選課程
@username
varchar(20)
--學生姓名
)
RETURNS
int
AS
BEGIN
DECLARE
@reun
int
SELECT
SUN(@class)
FROM
YOURTABLE
WHERE
USERNAME=@username
RETURN
@reun
END
㈤ 怎麼用sql語句執行用戶自定義函數
createfunctionfn_test(@avarchar(10),----待驗證字元
@bvarchar(10)---單個字元串集合列表
)
returnsvarchar(10)
as
begin
declare@cvarchar(100)
set@c=@a+@b
return@c
end
go
selectdbo.fn_test('test1','test2');
go
㈥ SQL中創建一個用戶自定義函數
CREATE FUNCTION DBO.tFProctsHS ( @name VARCHAR(10))
RETURNS INT --這個根據價格的類型自己修改
AS
begin
DECLARE @jiage INT;
select @jiage= jiage from 商品表 where name= @name
RETURN (@jiage)
end
--ceshi
select DBO.tFProctsHS ('記事本')
㈦ sql中如何查看和修改用戶自定義函數的定義
創建一個用戶自定義函數Goodsorder,以貨品名稱為參數,返回該貨品的訂單記錄。
直接分別試語句和函數注意你修改過的函數
與
有數據的表
是否在一個資料庫
㈧ sql2008中用戶自定義函數的對象名無效
調用時前面加上dbo.,比如你的自定義函數名為 MYF
可以這樣調用,SELECT dbo.MYF(實參)
㈨ T-SQL程序設計(用戶自定義函數)
很簡單,但是以後最好能認真點, 首先你問問提至少要帶個請字吧,大學老師留的課題你直接抄過來就完事了?
給你說最後一個
create function f_tableinfo
(
@tableName nvarchar(200)
)
returns @result table (
ColName nvarchar(200),
ColType nvarchar(200),
ColLength int,
ColIsNull bit
)
as
begin
insert into @result(ColName,ColType,ColLength,ColIsNull)
select
c.[name] as ColumnName,
t.[name] as ColumnType,
c.max_length as MaxLength,
c.is_nullable as [IsNull]
from sys.columns c
inner join sys.types t on c.system_type_id=t.system_type_id
where c.[object_id]=object_id(@tableName) and t.[name]<>'sysname'
order by c.column_id
return
end
㈩ SQL語句中如何包含一個自定義函數
在SQL語句,要包含函數干什麼?達不到你預期效果?
你用CASE WHEN 啊
select case when 月份>=2 and 月份<=5 then '春節' when 月份>=6 and 月份<=9 then '夏節' when .... end