今天学习了如何在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语句简介.wmv" 是一段视频教程,可能以生动直观的方式介绍T-SQL的基础概念和常用语句,对于初学者来说,通过观看演示和实例来学习会更加直观易懂。 总之,这份T-SQL学习资料集合提供了一个全面的学习路径,从...
在数据库管理领域,T-SQL(Transact-SQL)是SQL的一个扩展,尤其在Microsoft SQL Server中被广泛使用。本实验主要关注T-SQL的基础知识,包括基本语法格式、运算符与表达式、基本语句以及系统函数和用户定义标量函数...
### 常用T-SQL语句快速参考详解 #### SELECT语句 T-SQL中的SELECT语句用于从一个或多个表中检索数据。其基本语法格式如下: ``` SELECT [ALL|DISTINCT] [TOP n [PERCENT] [WITH TIES]] ``` 其中`ALL`表示返回...
SQL(Structured Query Language)是一种用于管理和处理关系数据库的标准语言,而T-SQL是Microsoft SQL Server中的扩展,提供了更丰富的功能和特性和SQL标准版本相比。本篇将深入探讨T-SQL在SQL应用中的各个方面,...
- **查询优化**:为了提高查询效率,书中介绍了许多优化技巧,包括如何编写高效的SQL语句、使用执行计划(execute plan)来分析查询性能等。 - **索引策略**:此外,合理的索引设计对于提升数据库性能至关重要。本书...
- **使用变量**:在SQL语句中引用变量时,需在其名称前加上“@”符号。如:`SELECT * FROM dbo.客户 WHERE 客户名称 = @CustomerName;` #### 二、基本运算符 T-SQL支持多种运算符,包括算术运算符、比较运算符、...
Transact-SQL(T-SQL)是SQL Server中使用的扩展SQL语言,它是SQL标准的Microsoft实现,用于管理和处理关系数据库中的数据。这个压缩包“Transact-SQL.rar_t-sql”显然包含了关于T-SQL的详细资料,可能是教程、手册...
- SQL Server 2000允许用户通过`CREATE FUNCTION`创建自定义函数以扩展其功能。 - 自定义函数可以接收0个或多个参数,并返回一个值,通常是数值或字符类型。 - SQL Server 2000支持3种类型的用户自定义函数: - ...
批处理是T-SQL语言中的一种机制,用于将多条SQL语句分隔成一个逻辑单元,以提高程序的执行效率。批处理可以包含一条或多条SQL语句,称为一个语句组。所有的批处理命令都使用GO语句作为结束的标志。 批处理使用规则...
在SQL Server中,T-SQL(Transact-SQL)是一种强大的查询语言,它扩展了标准的SQL,提供了更多的功能和灵活性。...了解并熟练使用这些T-SQL技巧,将使你在处理SQL Server中的数据操作时更加得心应手。
根据提供的信息,我们可以详细解析如何创建一个包含所有国家信息的SQL表,并且如何填充这个表以供下拉列表使用。 ### 数据库表结构设计 首先,我们从标题和描述中得知,目标是创建一个名为 `country` 的表,用于...
6. **存储过程和函数**:创建和使用存储过程(PROCEDURE)和用户定义函数(FUNCTION),以提高代码复用性和安全性。 7. **视图**:创建和使用视图(VIEW),作为虚拟表来简化复杂查询或隐藏敏感信息。 8. **索引**...
这份文档应该详细介绍了具体的T-SQL语句和步骤,以及可能的注意事项和最佳实践。通过学习和理解这个例子,你可以掌握如何在自己的SQL Server项目中使用T-SQL来处理字符串,提高代码的灵活性和实用性。
-- 执行部分:PL-SQL语句和SQL语句 EXCEPTION -- 异常处理部分:处理运行时的各种错误 END; ``` 2. **过程(Procedure)**:过程是无返回值的PL-SQL块,主要用于执行一系列数据库操作或业务逻辑。过程可以带有...
- **函数(FUNCTION)**:有返回值的程序单元,可以作为其他PL-SQL或SQL语句的一部分使用。 - **包(PACKAGE)**:将相关的过程和函数组合在一起,提供更好的封装和管理。 5. **游标(CURSOR)**: - **声明游标...
### 动态T-SQL:灵活应对复杂查询挑战 #### 引言 在信息系统开发过程中,经常需要实现一种或多种功能,使用户能够根据多个不同的条件自由地搜索数据。这是一项颇具挑战性的任务,因为不仅要确保输出结果符合需求,...
在使用Visual Basic (简称VB)进行数据库操作时,可能会遇到因为SQL语句过长而导致无法正常执行的问题。这种情况下,即使该SQL语句可以在SQL Server的查询分析器中成功运行,但在VB程序中却会因为长度限制而失败。...
### SQL语句详解:ALTER FUNCTION 和 ALTER INSTANCE #### 一、ALTER FUNCTION 语句 **ALTER FUNCTION** 语句在 SQL 中主要用于修改已存在的函数。然而,并非所有的数据库管理系统(DBMS)都直接支持该语句。不同...
- **定义函数**:使用`CREATE FUNCTION`语句定义一个名为`average()`的函数,用于计算指定专业的平均积分。 - **函数调用**:在查询中调用这个函数来获取计算结果。 通过以上实验内容的学习,学员不仅能够掌握T-...
在创建标量函数时,其语法包括`CREATE FUNCTION`,定义参数列表,返回值类型,并使用`BEGIN...END`块来编写函数体。例如,创建一个查找员工工号的函数`F_GONGHAO`,它接受一个员工姓名作为输入,返回相应的工号: ...