`

使用T-SQL语句创建Function

阅读更多
今天学习了如何在SQLServer中,通过脚本创建Function,以下是今天练习的Demo脚本

/*
	自动生成的脚本
*/

USE forums
GO

CREATE TABLE EMPLOYEE_DUPLICATE
(
	ID INT IDENTITY(1,1) PRIMARY KEY,
	EMP_NAME NVARCHAR(40) NOT NULL,
	EMP_TEL NVARCHAR(20) NOT NULL,
	EMP_PROVINCE NVARCHAR(20) NOT NULL,
	EMP_COUNTRY NVARCHAR(20) NOT NULL
)
GO
//将一个表中的数据复制到刚才新建的表中
INSERT INTO 
    EMPLOYEE_DUPLICATE(EMP_NAME,EMP_TEL,EMP_PROVINCE,EMP_COUNTRY)
        SELECT EMP_NAME,EMP_TEL,EMP_CITY,EMP_COUNTRY FROM EMPLOYEE

/**
	注意:题外话,如果要跨数据库
             (前提是当前用户中可以操作那个数据库)
              复制数据,则以下语句似乎可以搞定
	INSERT INTO DataBase_1_Name.dbo.EMPLOYEE_DUPLICATE

                 (EMP_NAME,EMP_TEL,EMP_PROVINCE,EMP_COUNTRY)

	SELECT EMP_NAME,EMP_TEL,EMP_CITY,EMP_COUNTRY FROM

        DataBase_2_Name.dbo.EMPLOYEE
**/

SELECT * FROM EMPLOYEE_DUPLICATE

/*
	创建带参数&返回值的函数
*/
IF EXISTS (SELECT * FROM sysobjects WHERE NAME = 'getResultById')
	DROP FUNCTION getResultById
CREATE FUNCTION getResultById (@id INT)
	RETURNS TABLE
AS
	RETURN 
	(
		SELECT EMP_NAME, EMP_TEL,EMP_PROVINCE,EMP_COUNTRY
                   FROM EMPLOYEE_DUPLICATE 
                       WHERE ID = @id
	)

//调用该函数
SELECT * FROM getResultById(2)
/*
	*Results Listing
	1	Tom	13011041125	NewYork	USA
	2	James	13000145296	ShanXi	China
	3	Harry	13103452845	ShanDong	China
	4	Jessica	13429990000	ShanXi	China
	5	Larry	0421-2909090	Yuta	USA
	6	Jakeboo	0911-2657999	ShanDong	China
	7	Vencent	010-28129588	BeiJing	China
*/

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE NAME = 'getIdsByProvince')
	DROP FUNCTION getIdsByProvince

CREATE FUNCTION getIdsByProvince(@province NVARCHAR(50))
	//注意:一定是RETURNS,不是RETURN ! !
	//另外:似乎只可以将返回类型设置为TABLE
	//没有什么BEGIN...END...GO之类的东东
	RETURNS TABLE
AS
	RETURN
	(
		SELECT ID FROM EMPLOYEE_DUPLICATE
                       WHERE EMP_PROVINCE = @province
	)

SELECT * FROM EMPLOYEE

//查询在EMPLOYEE表中过滤重复之后的EMP_CITY以及重复EMP_CITY的计数
SELECT DISTINCT(EMP_PROVINCE),
       COUNT(EMP_PROVINCE) 
          FROM EMPLOYEE_DUPLICATE
          GROUP BY EMP_PROVINCE

//调用该函数,传入CITY,然后返回相应的ID,再根据ID查询出EMPLOYEE表中的记录
SELECT * FROM EMPLOYEE
    WHERE
      ID IN (SELECT ID FROM getIdsByProvince('ShanXi'))



以上就是新建FUNCTION的脚本了,创建数据库之后,就可以直接运行了!

欢迎拍砖!
分享到:
评论

相关推荐

    T-SQL学习资料(CSDN下载)集合

    "T-SQL语句简介.wmv" 是一段视频教程,可能以生动直观的方式介绍T-SQL的基础概念和常用语句,对于初学者来说,通过观看演示和实例来学习会更加直观易懂。 总之,这份T-SQL学习资料集合提供了一个全面的学习路径,从...

    实验二 T-SQL语言基础

    在数据库管理领域,T-SQL(Transact-SQL)是SQL的一个扩展,尤其在Microsoft SQL Server中被广泛使用。本实验主要关注T-SQL的基础知识,包括基本语法格式、运算符与表达式、基本语句以及系统函数和用户定义标量函数...

    常用T-SQL语句快速参考

    ### 常用T-SQL语句快速参考详解 #### SELECT语句 T-SQL中的SELECT语句用于从一个或多个表中检索数据。其基本语法格式如下: ``` SELECT [ALL|DISTINCT] [TOP n [PERCENT] [WITH TIES]] ``` 其中`ALL`表示返回...

    sql应用的全部示例介绍t-sql

    SQL(Structured Query Language)是一种用于管理和处理关系数据库的标准语言,而T-SQL是Microsoft SQL Server中的扩展,提供了更丰富的功能和特性和SQL标准版本相比。本篇将深入探讨T-SQL在SQL应用中的各个方面,...

    Microsoft.Press.Inside.Microsoft.SQL.Server.2008.T-SQL.Programming

    - **查询优化**:为了提高查询效率,书中介绍了许多优化技巧,包括如何编写高效的SQL语句、使用执行计划(execute plan)来分析查询性能等。 - **索引策略**:此外,合理的索引设计对于提升数据库性能至关重要。本书...

    T-SQL流程控制和函数

    - **使用变量**:在SQL语句中引用变量时,需在其名称前加上“@”符号。如:`SELECT * FROM dbo.客户 WHERE 客户名称 = @CustomerName;` #### 二、基本运算符 T-SQL支持多种运算符,包括算术运算符、比较运算符、...

    Transact-SQL.rar_t-sql

    Transact-SQL(T-SQL)是SQL Server中使用的扩展SQL语言,它是SQL标准的Microsoft实现,用于管理和处理关系数据库中的数据。这个压缩包“Transact-SQL.rar_t-sql”显然包含了关于T-SQL的详细资料,可能是教程、手册...

    实验七 T-SQL语言基础及程序设计不经典不传

    - SQL Server 2000允许用户通过`CREATE FUNCTION`创建自定义函数以扩展其功能。 - 自定义函数可以接收0个或多个参数,并返回一个值,通常是数值或字符类型。 - SQL Server 2000支持3种类型的用户自定义函数: - ...

    SQL-Server数据库及应用-第08章-T-SQL语言完整.pptx

    批处理是T-SQL语言中的一种机制,用于将多条SQL语句分隔成一个逻辑单元,以提高程序的执行效率。批处理可以包含一条或多条SQL语句,称为一个语句组。所有的批处理命令都使用GO语句作为结束的标志。 批处理使用规则...

    一些 T-SQL 技巧

    在SQL Server中,T-SQL(Transact-SQL)是一种强大的查询语言,它扩展了标准的SQL,提供了更多的功能和灵活性。...了解并熟练使用这些T-SQL技巧,将使你在处理SQL Server中的数据操作时更加得心应手。

    所有国家的下拉列表sql语句创建

    根据提供的信息,我们可以详细解析如何创建一个包含所有国家信息的SQL表,并且如何填充这个表以供下拉列表使用。 ### 数据库表结构设计 首先,我们从标题和描述中得知,目标是创建一个名为 `country` 的表,用于...

    MS - Microsoft SQL Server 2008 T-SQL Fundamentals (2008.10).

    6. **存储过程和函数**:创建和使用存储过程(PROCEDURE)和用户定义函数(FUNCTION),以提高代码复用性和安全性。 7. **视图**:创建和使用视图(VIEW),作为虚拟表来简化复杂查询或隐藏敏感信息。 8. **索引**...

    T-SQL功能:在所有字符之间添加空格

    这份文档应该详细介绍了具体的T-SQL语句和步骤,以及可能的注意事项和最佳实践。通过学习和理解这个例子,你可以掌握如何在自己的SQL Server项目中使用T-SQL来处理字符串,提高代码的灵活性和实用性。

    PL-SQL详解

    -- 执行部分:PL-SQL语句和SQL语句 EXCEPTION -- 异常处理部分:处理运行时的各种错误 END; ``` 2. **过程(Procedure)**:过程是无返回值的PL-SQL块,主要用于执行一系列数据库操作或业务逻辑。过程可以带有...

    PL-SQL 帮助文件 PL-SQL 帮助文件

    - **函数(FUNCTION)**:有返回值的程序单元,可以作为其他PL-SQL或SQL语句的一部分使用。 - **包(PACKAGE)**:将相关的过程和函数组合在一起,提供更好的封装和管理。 5. **游标(CURSOR)**: - **声明游标...

    Dynamic T-SQL

    ### 动态T-SQL:灵活应对复杂查询挑战 #### 引言 在信息系统开发过程中,经常需要实现一种或多种功能,使用户能够根据多个不同的条件自由地搜索数据。这是一项颇具挑战性的任务,因为不仅要确保输出结果符合需求,...

    完成超长SQL语句执行前拆分

    在使用Visual Basic (简称VB)进行数据库操作时,可能会遇到因为SQL语句过长而导致无法正常执行的问题。这种情况下,即使该SQL语句可以在SQL Server的查询分析器中成功运行,但在VB程序中却会因为长度限制而失败。...

    SQL语句-ALTER FUNCTION和ALTER INSTANCE​.pdf

    ### SQL语句详解:ALTER FUNCTION 和 ALTER INSTANCE #### 一、ALTER FUNCTION 语句 **ALTER FUNCTION** 语句在 SQL 中主要用于修改已存在的函数。然而,并非所有的数据库管理系统(DBMS)都直接支持该语句。不同...

    【SQLServer基础教程】T-SQL编程.pptx(共27页,实验类课件)

    - **定义函数**:使用`CREATE FUNCTION`语句定义一个名为`average()`的函数,用于计算指定专业的平均积分。 - **函数调用**:在查询中调用这个函数来获取计算结果。 通过以上实验内容的学习,学员不仅能够掌握T-...

    Sqlserver 自定义函数 Function使用介绍

    在创建标量函数时,其语法包括`CREATE FUNCTION`,定义参数列表,返回值类型,并使用`BEGIN...END`块来编写函数体。例如,创建一个查找员工工号的函数`F_GONGHAO`,它接受一个员工姓名作为输入,返回相应的工号: ...

Global site tag (gtag.js) - Google Analytics