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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

你可能感兴趣的:(SQL Server)