• SQL Server9,流程控制 Execute 语句(*)


    ylbtech-SQL Server:SQL Server-9,流程控制 Execute 语句

     SQL Server 流程控制中的 Execute 语句。

    1,Execute语句(插入很实用select * into Orders_'+@year+' from Orders where Year(OrderDate)='+@year)
     1 --=============================================================
     2 -- 1,Execute语句
     3 -- Desc:Execute语句可用来执行存储过程、用户自定义函数或批处理中的命令字符串。在SQL Server2005
     4 -- 中Execute语句还可以向连接服务器发送传递命令。严格来说,Execute语句不属于T-SQL流程控制语句
     5 -- ,但它在T-SQL程序中使用频率很高。
     6 -- author:ylbtech
     7 -- pubdate:22:25 2012/12/18
     8 --=============================================================
     9 go
    10 
    11 go
    12 --=============================================================
    13 -- 2.1,Syntax(运行存储过程或函数的语法代码)
    14 --=============================================================
    15 [Exec|Execute]
    16 {
    17     [@return_status=]
    18     {module[;number]|@module_name_var}    
    19     [[@parameter]
    20         {
    21             value
    22             |@variable[Output]
    23             |[Default]
    24         }
    25     ]
    26     [,...n]
    27 }
    28 [;]
    29 --2.1,Remark:
    30 go
    31 --=============================================================
    32 -- 2.2,Syntax(运行字符串的语法代码)
    33 --=============================================================
    34 {Exec|Execute}
    35     ({@string_varialble|[N]'tsql_string'}[+...n])
    36     [As{Login|User}='name']
    37 [;]
    38 --2.2,Remark:
    39 
    40 go
    41 --=============================================================
    42 -- 2.3,Syntax(向连接服务器发送传递命令的语法代码)
    43 --=============================================================
    44 {Exec|Execute}
    45     ({@string_vaiable|[N]'command_string'}[+...n])
    46     [{,{value|@variable[Output]}}[...n]]
    47     )
    48     [As{Login|User}='name']
    49     [At linked_server_name]
    50 [;]
    51 --2.2,Remark:
    52 go
    53 --=============================================================
    54 -- 3,Example
    55 -- Desc:将订单表里1991年到2000年的订单分别放在一个新建的数据表中。
    56 --=============================================================
    57 use Northwind
    58 go
    59 
    60 Declare @execStr varchar(1000)
    61 Declare @year int
    62 Set @year=2000
    63 
    64 While @year>1990
    65 Begin
    66 Set @execStr='select * from Orders where Year(OrderDate)='
    67     +Cast(@year As varchar(4))    --[注释一]
    68     Exec(@execStr)    --[注释二]
    69 
    70 --[注释三]
    71 If @@ROWCOUNT>0
    72     Execute('select * into Orders_'+@year+' from Orders where Year(OrderDate)='+@year)
    73     Set @year=@year-1
    74 End
    75 go
    76 --remark:
    77 --【注释一】将查询语句放在一个变量中。
    78 --【注释二】执行变量中的查询语句。
    79 --【注释三】当该年订单数量不为零时将查询出来的记录插入一个新表中。
    80 select * from Orders
    81 
    82 go
    83 --=============================================================
    84 -- 4,Operation result
    85 --=============================================================
    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    各种概念POJO、JAVABEAN、DAO、DTO、PO、VO、BO、SSH、EJB
    SSH框架与SSI框架的区别
    SSH框架结构分析
    SSH框架系列:Spring配置多个数据源
    Java系列之:看似简单的问题 静态方法和实例化方法的区别
    数据库同步和使用JSONObject让Java Bean“原地满状态复活”
    Java工作队列和线程池
    Lucene之删除索引
    Java设计模式之Iterator模式
    有关《查找两个List中的不同元素》的问题解答与编程实践
  • 原文地址:https://www.cnblogs.com/ylbtech/p/2832140.html
Copyright © 2020-2023  润新知