zoukankan      html  css  js  c++  java
  • MS Server 2000中的Table类型

      SQL Server 2000 新增了Table型数据:Table型数据不能用来定义列的类型,只能用作T-SQL变量或者作为自定义函数的返回值。SQL Server 2000支持两种类型的函数:内置函数和用户定义函数。内置函数只允许T-SQL 语句调用而不能更改使用。用户定义函数可以根据需要定义自己所需的函数。用户定义函数可以带参数,也可以不带参数,但只能返回单值。正是由于这个原因SQL Server 2000增加了table型数据,其值可以是整型字符型或数值型。文中用一个简单的用户定义函数说明了用户定义函数的基本结构。
       table 数据类型只能用于定义 table 类型的局部变量或用户定义函数的返回值。该数据类型主要用于临时存储一组行,这些行将作为表值函数的结果集返回。可以将函数返回值和变量声明为table类型
       table 类型变量的行为类似于局部变量,有明确定义的作用域。该作用域为声明该变量的函数、存储过程或批处理。
       在存储过程中使用table类型变量与使用临时表相比,减少了存储过程的重新编译量。
       涉及table类型变量的事务只在table类型变量更新期间存在。这样就减少了table类型变量对锁定和记录资源的需求。
    不支持在表变量之间进行赋值操作。另外,由于table类型变量作用域有限,并且不是持久数据库的一部分,因而不受事务回滚的影响。
    不支持在table类型变量之间进行赋值操作。另外,由于table类型变量作用域有限,并且不是持久数据库的一部分,因而不受事务回滚的影响。
       接下来先定义一个表:
           create table u_tab (u_no varchar(100) not null unique,name varchar(100) not null, age varchar(50) not null)

        然后再向表里插入数据
          insert into u_tab(u_no,name, age)
               select 'jd_001','a01','25' union
               select 'jd_002','a02','22' union
               select 'jd_003','a03','26' union
               select 'jd_004','a04','23' union
               select 'jd_005','a05','24' union
               select 'lm_001','b01','28' union
               select 'lm_002','b02','65' union
               select 'lm_003','b03','76'
      

    定义table类型的变量和创建表、变量的许多地方都是相同的。
           declare @utab table (uid int IDENTITY , u_no varchar(100) not null unique, name varchar(100) not null, age varchar(50) not null)

         insert into @utab
        select * from u_tab

        select * from @utab

        update @utab set age = 43 where name = 'a05'
        select * from @utab where u_no like 'jd_%' order by age desc
        delete from @utab where age > 75
        select * from @utab where age > 75

        go
           用到是定义变量时的declare但是后面却和创建表用的格式是相同的。但是在调用table类型变量时又体现出它具有表的某些性质。在我个人看来table类型的变量是具有表和一般变量的交集的特性。
           通过编写函数来实现学习table类型的使用方法
             create function select_utab (@u_no varchar(100))
               returns table
                as
          return (
             select   U_no, name ,age from u_tab
             where u_no = @u_no
                  )

        编写了一个简单的内嵌表值函数,函数select_utab返回的类型便是table类型。
        调用函数    select * from select_utab('jd_005')
        得到结果: jd_005 a05 24
        在成功调用select_utab函数后,又一次体会到了。table类型具有表的性质的一面。

  • 相关阅读:
    Django
    ionic创建项目报错Error: read ECONNRESET at _errnoException (util.js:992:11) at TLSWrap.onread (net.js:618:25)
    转《vue引入第三方js库》
    转《在浏览器中使用tensorflow.js进行人脸识别的JavaScript API》
    微信小程序自定义组件
    小程序中尽量少使用定时器
    解决小程序webview缓存机制
    小程序获取当前页面URL
    6s ios9.0平台 微信小程序的fixed定位兼容性问题
    如何使用nodejs快速搭建本地服务器
  • 原文地址:https://www.cnblogs.com/chenqingwei/p/1737972.html
Copyright © 2011-2022 走看看