SQL Server-9,流程控制 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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值