13 ngbshzhn

尚未进行身份认证

我要认证

数学教师一枚

等级
TA的排名 1w+

SqlServer2008实例58UDF之维护可重用的代码

标量UDF可以把逻辑封装到一个函数中,而不是在每次需要的时候多次重复逻辑,从而减少代码膨胀。 例如,下面的标量用户定义函数用于决定雇员可以拿到的电脑类型。有好几行代码来计算不同的输入参数,包括雇员的头衔、雇员的雇用日期以及是否领薪水.可以将这些逻辑封装到一个函数中,而不是在数据库中的多个地方重复这段逻辑:USE AdventureWorksGOCREATE FUNCTION dbo.udf_GET_AssignedEquipment(@Title nvarchar(50),@H...

2020-09-04 09:07:41

SqlServer2008实例58查看UDF元数据,移除用户定义函数

1.查看当前数据库中的UDF列表SELECT name,type_desc,definitionFROM sys.sql_modules sINNER JOIN sys.objects o ON s.object_id=o.object_idWHERE TYPE IN('IF','TF','FN')--IF为内联表UDF,TF为多语句表UDF,FN为标量UDF sys.sql_modules和sys.objects系统视图用来在查询的结果集中返回UDF名、类型描述以及SQL定义。2..

2020-08-23 08:03:28

SqlServer2008实例57修改用户定义函数

使用ALTER FUNCTION命令能修改函数,USE AdventureWorksGO--创建一个把字符数组作为结果集返回UDFALTER FUNCTION dbo.udf_ParseArray(@StringArray varchar(max), @Delimiter char(1), @MinRowSelect int, @MaxRowSelect int )RETURNS @StringArrayTable Table (RowNum int IDENTITY(1,...

2020-08-23 07:52:34

SqlServer2008实例56创建多语句用户定义函数

多语句表UDF能像内联UDF一样在FROM子句中被引用,但是和内联UDF不同的是,它们不限制在函数定义内只能使用·一个SELECT语句。多语句UDF能在UDF定义的主体内使用多个T-SQL语句以定义最后要返回的一个结果集。 多语句表UDF的基本语法如下:CREATE FUNCTION [ schema_name. ] function_name( [ { @parameter_name [ AS ] [ type_schema_name. ] parameter_data_typ...

2020-08-19 09:21:54

SqlServer2008实例55创建内联用户定义函数

内联UDF返回表数据类型。在UDF定义中,你不需要显式定义返回的表,只需要使用一个SELECT语句来定义返回的行和列。内联UDF使用一个或多个参数并使用一个SELECT语句返回数据。内联UDF和视图非常相似,它们能在FROM子句中引用。然而和视图不同的是,UDF可以接受参数,然后将它们用在函数的SELECT语句中。 基本语法如下:CREATE [ OR ALTER ] FUNCTION [ schema_name. ] function_name ( [ { @parame...

2020-08-19 08:58:13

SqlServer2008实例54创建标量用户定义函数

T-SQL用户定义函数(UDF)分成3类:标量(scalar)、内联表值(inline tablehvalued)和多语句表值(multi-statement table valued). 标量用户定义函数用于根据0个或多个参数返回一个值。例如,你可以创建一个接受CountryID作为参数的标量UDF,并返回CountryNM。 如果在SELECT子句中使用标量用户定义函数,函数将为FROM子句中每一行执行,根据函数的设计情况,这样很可能会造成很差的性能. 内联表值UDF...

2020-08-18 10:16:29

SqlServer2008实例53重新编译和缓存

1.每次存储过程执行时重新编译 当存储过程的计划自动或显式重建的时候就会发生重新编译。当存储过程中引用的基础表或其他对象发生改变后,存储过程就会在其执行期间自动重新编译。计划使用的索引发生变动或者存储过程引用的表键发生了大量的更新也可能引起重新编译。自动重新编译的目的足确保SQL Servcr执行计划使用最新的信息,不使用过期的假设架构和数据。 SQL Server在存储过程中使用语句级别的重新编译,而不是重新编译整个存储过程。重新编译在生成新计划的时候会引起额外的负载,而语句级别的重新编...

2020-08-15 09:17:38

SqlServer2008实例52存储过程安全

1.加密存储过程 存储过程的T-SQL定义能在数据库中实现内容加密,这样就不能读取过程的定义。在后端使用SQL Server的软件开发商通常加密存储过程来防止客户端或竞争对手的篡改或逆向工程。如果你使用了加密,请确保保存了原始的T-SQL定义,因为以后不能再轻易地解密它(合法并且可靠的)。而且应该只在正式把它部署到生产环境之前才进行加密。 要加密存储过程,可以在新存储过程的名字后面指定WITH ENCRYPTION:USE AdventureWorksGOCREATE PROC...

2020-08-15 08:48:30

SqlServer2008实例51存储过程基础

目录1.创建基本的存储过程2.创建带参数的存储过程3.使用OUTPUT参数4.修改存储过程5.删除存储过程6.在SQL Server启动时自动执行存储过程7.报告存储过程元数据8.为存储过程建立文档用存储过程有以下一些好处。存储过程帮助在数据层聚集T-SQL代码。嵌入即席SQL的网站或应用程序在应用环境下很难修改,当即席SQL嵌入在应用程序内的时候,你可能会花费太多时间试图找到和调试嵌入的SQL。一旦找到了bug,你可能就需要重新编译可执行程序,引起不必要的应用程序临

2020-08-11 09:41:40

SqlServer2008实例50游标

有编程背景的查询编写者通常更习惯于使用游标,而不是基于集合的方案来获取或更新行。例如,程序员可能会决定一次遍历一行,一条一条地更新行,而不是用一个操作来更新整个行集。但是,游标会耗尽SQL Server实例的内存、减少并发性、减少网络带宽、锁定资源,并且经常会需要比基于集合的方案更多的代码。T-SQL是基于集合的语言,也就是说它擅长操作和获取行集,而不是一行一行地处理。 然而,应用程序或业务需求可能需要T-SQL游标提供的一行一行的处理方式。通常,应该在其他诸如WHILE循环、子查询、临时表...

2020-08-10 10:04:14

SqlServer2008实例49流控制

目录1.使用RETURN2.使用WHILE3.使用GOTO4.使用WAITFOR1.使用RETURN RETURN用来立即退出当前的T-SQL批处理、查询或存储过程,并且不执行它之后的批处理/查询/过程域中的任何代码。RETURN仅退出当前域中执行的代码。如果在存储过程A中调用了存储过程B,并且存储过程B发起一个RETURN,那么存储过程B会立即终止,但是存储过程A还会继续,就好像B已经成功完成。 示例1:使用RETURN来无条件终止一个查询:USE Adv...

2020-08-10 09:27:13

SqlServer2008实例48条件处理

条件处理可以根据一个或者一组表达式的值来返同结果。 CASE函数用于根据一个表达式的值返回结果。它常用于将代码转换为描述性的值或者计算多个条件来返回一个值(例如,“如果行是2008年的并且小于或等于当前的季度,则返回销售总数”)。 IF…ELSE结构计算一个布尔表达式,如果足TRUE则执行一个T-SQL语句或批处理。这个命令有很多用途,使用它可以根据条件返回结果集、更新数据或根据一个或多个搜索条件执行存储过程。1.使用CASE来计算单个输入表达式 CASE函数用于根据一个...

2020-08-09 10:13:07

SqlServer2008实例47IDENTITY和uniqueidentifier函数

IDENTITY列属性定义在表的某个列上,并且允许我们为表中的一个列定义自增的数字值。 和确保表中唯一的IDENTITY列不同,ROWGUIDCOL属性确保更商级别的唯一。这种唯一的ID保存在uniqueidentifier数据类型中,并且由NEWID系统函数生成。也可以使用NEWSEQUENTIALID系统函数来产生uniqueidentifier返回类型;但是,它与NEWID不同,因为每个新生成的GUID都大于其他服务器范围内生成的GUID。因为NEWSEQUENTIALID在每次执行时...

2020-08-09 09:22:46

SqlServer2008实例46使用系统函数检测服务器、数据库以及连接级别的配置

SQL Server包含了一些用于检测SQL Server实例的系统设置的系统配置函数口有一些函数带有@@前缀,在之前版本的SQL Server中叫做变量。其他系统函数没有@@前缀,并且接受用于帮助收集有关SQL Server实例或者数据库信息的参数。 1.确定每周的第一天 @@DATEFIRST函数返回SQL Servcr实例指定的每周第一天的值。因为这个值定义了诸如DATEPART和DATEADD等其他日期函数使用的每周工作日datepart的计算,所以这是需要关注的。...

2020-08-08 09:50:16

SqlServer2008实例45排名函数

目录1.生成递增行号2.根据排名返回行3.根据无间隔排名返回行4.使用NTILE可以使用排名函数返回和结果集中的每行关联的排名值。 排名函数函 数 描 述 ROW_NUMBER 为结果集中的每行返回递增整数 RANK 和ROW_NUMBER相似.RANK为结果集中的每行递增值.主要的区别是如果行有重复值,它们会有相同的排名值 DENSE_RANK DENSE_RANK和RANK几乎一样,只是如果行有重复值,DENS...

2020-08-07 09:32:18

SqlServer2008实例44类型转换

CONVERT和CAST函数都是用来将一种数据类型转换为另一种数据类型。CAST的语法如下所示: CAST(expression AS data_type[(length)]) 第一个参数是要转换的表达式(例如一个表列或字面量值)。第二个参数是要转换成的数据类型。 CONVERT的语法如下: CONVERT(data_type[(length)],expression[,style】) 第一个参数是要转换成的数据类型。第二个参数是需要转换的表达式。第三个参数s...

2020-08-07 08:43:45

SqlServer2008实例43日期函数

SQL Server肯几种用来存储日期和时间数据的数据类型:datetime、datetime2、date、time、datatimeoffset和smalldatetime。SQL Server提供了一些使用这些日期函数函数名 描 述 DATEADD DATEADD根据指定的问隔和数字返回一个增加或减少后的新同期 DATEDIFF DATEDIFF从第_1个日期减去第—个日期,并生成一个指定的datepart码格式的值 DATENAME DATENAME返...

2020-08-05 17:35:55

SqlServer2008实例42NULL函数

由于NULL值是未知的,它可能会弄乱相关代码-SQL Server提供了函数来处理代码中的NULL值, NULL函数函数名 描 述 ISNULL ISNULL检测表达式是否为NULL,如果是的话替换NULL值为另外一个值 COALESCE COALESCE函数返回指定表达式列表的第一个非NULL值 NULLIF 当指定的两个表达式有相同值的时候,NULLIF返回NULL值,否则返回第一个表达式的值下面的几...

2020-08-05 11:35:32

SqlServer2008实例41字符串函数

目录1 把字符值转化为ASCII以及把ASCII转回字符2.返回整数和字符Unicode值3.获取某个字符串在另一个字符串中的起始位置4.使用通配符找到某个字符串在另一个字符串中的起始位置5.检测字符串相似度6.获取字符串最左和最右部分7.检测字符串中的字符数或者字节数8.把字符串的一部分替换成另一个字符串9.把字符串填充到字符串中10.在小写和大写之间进行转化11.移除前导空格和尾部空格12.重复一个表达式N次13.重复一个空格N次14.逆序输出..

2020-08-01 15:23:43

SqlServer2008实例40数学函数

目录示例1 POWER示例2 ROUND示例3.RAND示例4 RAND 数学函数函 数 描 述 ABS 计算绝时值 ACOS 计算其余弦是所指定参数的角(弧度) ASIN 计算其正弦是所指定参数的角(弧度) ATAN 计算其正切是所指定参数的角(弧度) ATN2 计算其正切介于两个浮点表达式之间的角(弧度) CEILING 计算大于或等于指定参数的最小整数 COS 计...

2020-08-01 09:57:07

查看更多

勋章 我的勋章
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享精英
    分享精英
    成功上传11个资源即可获取