标量函数,多语句表值函数,内嵌表值函数

标量函数返回一个标量(单值)结果,可返回Timestamp,text,Ntext,Image,Table,Cursor
多语句表值函数,返回一条或多条Transact-sql语句建立的表,可在select 语句的FROM子句中被引用.
内嵌表值函数,位于RETURN子句中的SELECT命令段从数据库中摔选出来的,类似于视图但强于视图.

标量函数,在Begin...End 之间函数体,不能包非确定性系统函数.
Create Function [own_name.]function_name([{@参数名[as] 数据类型[=默认值]}[,...n]])
Returns 返回数据类型 [With <函数选项>] [As] Begin 函数体 Return 返回表达式 End

调用函数 Select Own_name.function_name[(参数值[,...n])]

多语句表值函数
Begin...End 限定了函数体,Returns指定Table作为返回的数据类型
Create Function[own)name.]function_name([{@参数名[as]数据类型[=默认值]},[,...n]])
Returns @返回变量 Table<表定义>[With<函数选项>][As] Begin 函数体 Return End

调用函数 Select * from own_name.function_name[(参数值[,...n])][where <条件>]

内嵌表值函数
Returns 子句在括号中包含单个Select语句,Returns指定table作为返回的数据类型
不必定义返回变量的格式,因为它由Return子句中的Select语句的结果集格式设置


更改函数 :Alter Function 删除函数:Drop Function
创 架构绑定函数
创建时用 SchemaBinding 则数据库对象不能更改(使用Alter 或 Drop语句)
但使用SchemaBinding必须具有对函数中引用对象的Reference权限

mssql二进制加解密, cast(@password as binary(20)) ,cast(@EPassword as varchar(20))
insert into AppUsers(UserName,password) values('tom',dbo.fn_EncryptPassword('00001'))
select username,dbo.fn_DecryptPassWord(password) from AppUsers


Create Function dbo.fn_EncryPassword(@Password varchar(20))
returns binary(20)
begin
     declare @EPassword binary(20)
     set @EPassword = cast(@Password as binary(20))
     return @ EPassword
end

Create Function dbo.fn_DecryptPassword(@EPassword binary(20))
returns varchar(20)
begin
     declare @Password varchar(20)
     set @Password = cast(@EPassword as varchar(20))
     return @Password
end

 

感谢:jude_liu

转载于:https://www.cnblogs.com/xred/archive/2012/06/09/2542909.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios初学笔记

bool值只取最低位的值&#xff0c;若最低位为&#xff10;&#xff0c;bool值等于NO&#xff1b;若最低位不为&#xff10;&#xff0c;bool值等于YES。比较bool值的时候&#xff0c;将变量与NO进行比较最保险。objc不支持多继承类的description方法类似java的toString方法&…

蒙特卡罗方法介绍( 二)

蒙特卡罗方法介绍( 二) 一、蒙特卡罗求解定积分 蒙特卡洛方法求解定积分有两种方法&#xff0c;一种是上一节中讲的投点法&#xff0c;另外一种是期望法&#xff08;也称平均值法&#xff09;。 1.1 投点法 给出如下曲线f(x)f(x)f(x),求f(x)f(x)f(x)在a,ba,ba,b上的积分&am…

大数据技术之kafka (第 3 章 Kafka 架构深入) 分区策略在分析

如果不懂分区策略请看我之前的文章&#xff1a;https://blog.csdn.net/ywl470812087/article/details/105328015 默认的方式我们采用的是Range策略方式&#xff08;按主题给消费者消费&#xff0c;主题被谁订阅了就谁消费&#xff09; 先看下下面这个图&#xff0c;画的很丑&a…

如何达成目标笔记

如何达成目标 一、本书主要内容 推荐序一 升级你的行动工具箱 推荐序二 人们可以改变 引言 成功者和自制力的悖论 //004 自制力到底是怎样的 //007 你能做什么 //009 本书的主题 //011 1.1 准备就绪 第1章 你明白自己去往哪里吗 别说“做到最好” //017 大局与细节 //…

大数据技术之 Kafka (第 4 章 Kafka API ) Producer API

4.1.1 消息发送流程 Kafka 的 Producer 发送消息采用的是异步发送的方式。在消息发送的过程中&#xff0c;涉及到了两个线程——main 线程和 Sender 线程&#xff0c;以及一个线程共享变量——RecordAccumulator。main 线程将消息发送给 RecordAccumulator&#xff0c;Sender…

【分类器】- KNN

一、分类算法中的学习概念因为分类算法都是有监督学习&#xff0c;故分为以下2种学习。1、急切学习&#xff1a;在给定的训练元组之后、接受到测试元组之前就构造好分类模型。算法有&#xff1a;贝叶斯、基于规则的分类&#xff08;决策树&#xff09;、向后传播分类、SVM&…

Java虚拟机栈介绍

与程序计数器一样&#xff0c;Java虚拟机栈&#xff08;Java Virtual Machine Stack&#xff09;也是线程私有的&#xff0c;它的生命周期 与线程相同。虚拟机栈描述的是Java方法执行的线程内存模型&#xff1a;每个方法被执行的时候&#xff0c;Java虚拟机都 会同步创建一个栈…

《关键对话——何谓关键对话》读书笔记(一)

《关键对话——何谓关键对话》读书笔记&#xff08;一&#xff09; 利用假期的时间&#xff0c;将关键对话阅读了一遍&#xff0c;书中提到的观点&#xff0c;方法&#xff0c;场景等很适合我目前处的状态&#xff0c;有的时候读起来仿佛就是自己身临其境&#xff0c;有种感同身…

从java读取Excel继续说大道至简 .

在上一篇博客《从复杂到简单&#xff0c;大道至简》中说道我们要把复杂的问题简单化&#xff0c;也就是要把问题细分&#xff0c;让大问题变成小问题&#xff0c;这样解决起来会相对容易&#xff0c;当我们把容易的小问题解决掉了&#xff0c;大问题自动就会迎刃而解。 所以今天…

Java堆介绍

对于Java应用程序来说&#xff0c;Java堆&#xff08;Java Heap&#xff09;是虚拟机所管理的内存中最大的一块。Java堆是被所 有线程共享的一块内存区域&#xff0c;在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例&#xff0c;Java 世界里“几乎”所有的对象实例都…

推荐算法工程师的成长之道

推荐算法工程师的成长之道 原创&#xff1a; gongyouliu 大数据与人工智能 3月20日 源链接&#xff1a;原文地址 本文&#xff0c;作者会基于自己的实践经验讲述推荐算法工程师的成长之道&#xff0c;这里的“道”有发展路径和道(道理、方法论、经验、智慧)两层意思。 所以本文…

java电子商务源码解读 b2b2c o2o

大型企业分布式互联网电子商务平台&#xff0c;推出PC微信APP云服务的云商平台系统&#xff0c;其中包括B2B、B2C、C2C、O2O、新零售、直播电商等子平台。 分布式、微服务、云架构电子商务平台 java b2b2c o2o 技术解决方案 开发语言&#xff1a; java、j2ee 数据库&#x…

jQuery上传插件-uploadify3.1使用说明

uploadify &#xff0c;简单实用的flash上传组件&#xff0c;兼容性良好。 现已有html5版本。 官方地址&#xff1a;http://www.uploadify.com/ 官方英文文档&#xff1a;http://www.uploadify.com/documentation/ Demos Download 使用方法(.net版本): 前台JS $("#id&q…

《关键对话——掌握关键对话》读书笔记(二)

《关键对话——掌握关键对话》读书笔记(二) 上一节中我们已经定义了关键对话&#xff0c;在面对关键对话时&#xff08;比如老板给你安排了一项非常不合适的任务&#xff09;&#xff0c;你的选择可能只有如下两种&#xff1a; 1.当面表示反对&#xff0c;把老板惹怒 2.沉默接…

信息流推荐多样性

信息流推荐多样性 一、问题现状 信息流产品中一个常见的问题是多样性越来越差&#xff0c;造成这种问题的原因在于机器学习算法本身。下面通过一副系统循环图来介绍多样性差的问题。 资讯库随机推荐文章&#xff0c;由于是按照全库比例采样&#xff0c;娱乐占比较大&#xf…

Robocode教程2——你的第一个robo,取个好名字哦

摘自&#xff1a;http://site.douban.com/widget/notes/7736245/note/210029011/ 你需要准备的东西&#xff1a;1.c语言的知识和一点点的java知识&#xff0c;robocode意在学习java&#xff0c;不要要太深的java水平&#xff0c;你只要理解java和c的区别就可以了。2.robocode A…

《关键对话——从“心”开始,如何确定目标》读书笔记(三)

从“心”开始&#xff0c;如何确定目标、 我们的问题并不是行为本身是错误的&#xff0c;而是我们的动机有问题&#xff0c;即我们常常弄错要面对的目标。 一、从心开始 对话高手总是能做到从心开始。在开展高风险对话时&#xff0c;他们总是首先明确目的和动机&#xff0c;无…

UI设计师的面试过程

Palantir Technologies是一家提供分析、整合、可视化各种数据的IT型技术公司。在该公司&#xff0c;前端工程师和后端工程师有同样的面试过程&#xff0c;前端工程师也需要的一定的编程基础。该公司技术博客Palantir TeckBlog日前发表了一篇博文《The UI Design Interview》&am…

C语言代码实现数组(简单)

前一节课讲了数组的删除功能实现&#xff1a;删除功能 本节课内容我们实现数组的反转功能和冒泡排序功能&#xff1a; #include <stdio.h> #include <string.h> #include <malloc.h> #include <stdlib.h>struct Arr{int * pBase; //存储数组第一个元…