Professional Documents
Culture Documents
//
SQL Server
SQL Sever(Getdate()
Convert())
1)
2)
3)
//
T-SQL
17-1
--,
--T-SQL
BEGIN
ALTER FUNCTION
ALTER FUNCTION
Enterprise Manager
10
1. DROP FUNCTION
DROP FUNCTION { [ owner_name.] function_name } [ ,...n ]
2. Enterprise Manager
11
12
SQL Server
EXECUTE
EXECUTE
CONSTRAINTDEFAULT
REFERENCES
13
14
15
CREATE FUNCTION [ owner_name.] function_name
( [ { @parameter_name scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS scalar_return_data_type
[ WITH < function_option> [ [,] ...n] ]
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END
RETURN
16
17-3
USE
GO
--
CREATE FUNCTION dbo.fn_Past_Service
(@hireday datetime,
@current datetime
)
RETURNS int
AS
BEGIN
DECLARE @MPast int
SET @MPast = DATEDIFF(yy,@hireday,@current)
RETURN @Mpast
END
GO
--
USE
GO
SELECT ,,dbo.fn_Past_Service(,getdate()) AS
FROM ORDER BY 3 DESC
GO
(30)
17
CREATE FUNCTION [ owner_name.] function_name
( [ { @parameter_name scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS TABLE
[ WITH < function_option > [ [,] ...n ] ]
[ AS ]
RETURN [ ( ) select-stmt [ ] ]
SELECTFROM
T-SQL
SELECT
RETURNSELECT
(Index
View)
18
17-4
USE
GO
CREATE FUNCTION dbo.fn_QuerySalary(@ money,@ money)
RETURNS TABLE
RETURN ( SELECT ,, FROM
WHERE >= @ AND <= @)
GO
----3000040000
SELECT * FROM fn_QuerySalary(30000,40000) ORDER BY DESC
(15)
19
CREATE FUNCTION [ owner_name.] function_name
( [ { @parameter_name scalar_parameter_data_type [ = default ] } [ ,...n ] ] )
RETURNS @return_variable TABLE < table_type_definition >
[ WITH < function_option > [ [,] ...n ] ]
[ AS ]
BEGIN
function_body
RETURN
END
< function_option > ::=
{ ENCRYPTION | SCHEMABINDING }
< table_type_definition > ::=
( { column_definition | table_constraint } [ ,...n ] )
T-SQL
View
20
17-6
USE
GO
CREATE FUNCTION dbo.fn_Dept_Service
( @MDept varchar(10),
@current datetime,
@MStart_year int,
@MEnd_year int )
RETURNS @MPersonTbl TABLE ( nvarchar(10) ,
nvarchar(10) ,
int)
AS
BEGIN
-- table @MPersonTbl
INSERT @MPersonTbl
SELECT ,,=DATEDIFF(yy,,@current)
FROM
WHERE DATEDIFF(yy,,@current) BETWEEN
@MStart_year AND @MEnd_year AND = @MDept
RETURN
END
GO
-- fn_Dept_Service
SELECT * FROM dbo.fn_Dept_Service('','2004/3/29',5,10)
21
(
dbo.GetSalary)
(..)
22
17-8
--
DECLARE @Area int
SET @Area = dbo.fn_Rect_Area(10,2) --
SELECT = @Area
--
--
USE
GO
SELECT ,dbo.fn_Past_Service(,getdate()) AS
FROM
(30)
DEFAULT
23
sp_rename [ @objname = ] 'object_name' ,
[@newname =] 'new_name'
[ , [ @objtype = ] 'object_type' ]
sp_rename
17-10 fn_Area_Area()(OBJECT)fn_Area()
EXEC sp_rename 'fn_Rect_Area' , 'fn_Area' , 'OBJECT'
24
DECLARE
SETSELECT
FETCH
IfWhile
tableInsertDeleteUpdate
EXECUTESQL
25
26