SQLServer初始自定義函數

dbo:database owner的縮寫,是數據庫用戶所有者的縮寫。

SELECT COL_LENGTH('stu','name') -- 返回字段的長度的函數
SELECT COL_NAME(OBJECT_ID('db1.dbo.stu'),2) -- 返回字段名稱的函數

 

我的第一個SQLServer自定義函數

功能:輸入年齡,查找這個年齡的同學的姓名,並且返回其姓名。

返回的是一個表格,所以這種函數成爲表值函數

CREATE FUNCTION getStuNameByAge(@Age INT)
RETURNS TABLE -- 返回值類型是一個表格
AS
RETURN
(
	SELECT name FROM dbo.stu WHERE age=@Age
)

調用這個函數時的語句:

SELECT * FROM getStuNameByAge(11) 

我的第二個SQLServer函數

功能:求一個整數的階乘

返回的是一個標量,所以這種函數又成爲標量函數。

CREATE FUNCTION F_自定義函數(@number INT)
RETURNS INT
AS	
BEGIN -- begin和end相當於C語言中左的左括號和右括號
	DECLARE @m INT -- 定義一個INT類型的變量,並且設置其初始值爲1
	SET @m=1
	IF(@number<0)
		SET @m=0  -- 變量複製前都要加上set
	ELSE IF(@number<2)
		SET @m=1
	ELSE 
	BEGIN	
		WHILE @number!=0
		BEGIN
			SET @m=@m*@number  -- set是賦值函數的哈
			SET @number=@number-1
		END
	END	
RETURN @m
END	

調用這個函數時的語句:

SELECT dbo.F_自定義函數(5)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章