none
请问sql server 的T-SQL里,有没有类似ORACLE里PL-SQL中的 %Type %RowType 功能? RRS feed

  • 问题

  • 如题。

    oracle 里

    select * into cest%rowtype from tb where tb=1

    但在sql server 里,得定义N个字段的变量,

    写起来没有ORACLE那种方式方便。

    MS一向以方便实用著称,很难想象没有这个功能。


    2014年8月27日 7:21

答案

全部回复

  • 请问LZ是需要把数据导入到一个表里面吗

    USE [tempdb]
    SELECT * into cestrowtype from [sys].[sysobjects] where [id] <>1

    上面的sql语句就把[sysobjects表数据导入到cestrowtype 表


    查了一下%Type %RowType 功能

    http://www.cnblogs.com/kingjiong/archive/2009/02/19/1393837.html

    文章说%RowType 只是一个记录并不是一个表

    2014年8月27日 8:12
  • 请问LZ是需要把数据导入到一个表里面吗

    USE [tempdb]
    SELECT * into cestrowtype from [sys].[sysobjects] where [id] <>1

    上面的sql语句就把[sysobjects表数据导入到cestrowtype 表


    查了一下%Type %RowType 功能

    http://www.cnblogs.com/kingjiong/archive/2009/02/19/1393837.html

    文章说%RowType 只是一个记录并不是一个表

    需要的就是记录。不是表。

    如果我的表有80个字段,在存储过程中,我需要处理28个字段的值

    我得declare

    @v1  type,

    .......,

    @v28 type

    begin

    select @v1=field1,@v2=field2,.........,@v28=field28 from tb where id=1

    可想是有多痛苦了。


    2014年8月27日 9:01
  • LZ你好,你可以使用游标

    http://www.cnblogs.com/moss_tan_jun/archive/2011/11/26/2263988.html

    2014年8月27日 9:32
  • LZ你好,你可以使用游标

    http://www.cnblogs.com/moss_tan_jun/archive/2011/11/26/2263988.html

    谢谢。

    游标确实可以减少代码量。

    但是游标又引入了其他代码量。

    如需要定义游标,打开,提取,并且还要留意关闭和释放游标。稍不留意,还会留下隐患。

    还是ORACLE 的RowType好用。

    搞不青楚为什么SQLSERVER里没有这个,还是我根本就没有找到这个功能。


    2014年8月27日 10:17
  • sql server 里面确实没有类似的功能
    • 已标记为答案 hychx 2014年8月29日 3:20
    2014年8月29日 1:14