zoukankan      html  css  js  c++  java
  • SQL Server中Table型数据(表变量)与用户自定义函数

    SQL中Table型数据与用户自定义函数(downmoon)
    SQL Server 2000 新增了Table型数据:Table型数据不能用来定义列的类型,只能用作T-SQL变量或者作为自定义函数的返回值,下例是一个简单的table 型数据的例子:

    Declare @TableVar Table
    (Cola 
    int Primary Key,Colb char(3))
    Insert Into @TableVar Values (1'abc')
    Insert Into @TableVar Values (2'def')
    Select * From @TableVar


    以上语句定义了一个名为TableVar,有两列的table 型变量像通常的表一样table 型数据也有insert select 等操作。在SQL Server 2000 中table 型数据与用户自定义函数是密不可分的,SQL Server 2000支持两种类型的函数:内置函数和用户定义函数。内置函数只允许T-SQL 语句调用而不能更改使用。用户定义函数可以根据需要定义自己所需的函数。用户定义函数可以带参数,也可以不带参数,但只能返回单值。正是由于这个原因SQL Server 2000 增加了table 型数据,其值可以是整型字符型或数值型。下例是一个简单的用户定义函数说明了用户定义函数的基本结构:
    Create Function CubicVolume
    (
    @CubeLength decimal(4,1),@CubeWidth decimal(4,1),@CubeHeight decimal(4,1) )
    Returns decimal(12,3)
    As
    Begin
    Return (@CubeLength * @CubeWidth * @CubeHeight)
    End
    --SELECT  AppDta.dbo.CubicVolume (10,8,6)


    在 上例中用CREATE FUNCTION 创建了一个函数CubicVolume 来计算立方体的体积,变量CubeLength CubeWidth CubeHeight 为输入参数,返回值为数值型。BEGIN 表明函数体的开始,END 表明函数体的结束。通过下例 我们就会清楚用户定义函数与table 型数据是如何有机结合的:

    Use pubs

    Create Function SalesByStore(@storeid varchar(30))
    Returns Table
    As
    Return (Select title, qty From sales s, titles t
    Where s.stor_id = @storeid and t.title_id = s.title_id)

    -- select * from sales
    SELECT Pubs.dbo.SalesByStore(7131)

    邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。
    助人等于自助!  3w@live.cn
  • 相关阅读:
    vi里面全局替换
    guanbi selinux
    ntop
    Java:求一个数组中连续子元素最大和
    LeetCode.643. 子数组最大平均数 I
    分治法-最大子数组问题
    Java实现最大连续子数组和
    golang xorm cmd xorm工具使用 reverse 反转一个数据库结构,生成代码
    golang中xorm的基本使用
    xorm入门
  • 原文地址:https://www.cnblogs.com/downmoon/p/1019655.html
Copyright © 2011-2022 走看看