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 --=============================================================
本文转自ylbtech博客园博客,原文链接:http://www.cnblogs.com/ylbtech/archive/2012/12/25/2832140.html,如需转载请自行联系原作者