码迷,mamicode.com
首页 > 数据库 > 详细

SqlCollections - T-SQL程序

时间:2014-10-23 14:08:44      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   ar   使用   sp   数据   div   

  1 --==============================T-SQL程序===============================
  2 --GO
  3 --会将两个GO之间的语句传递给SQL Server编译并运行,含有多个GO的就会分多次传递语句
  4 --GO n 代表循环执行n次
  5 PRINT aaa
  6 GO 10
  7 
  8 --类型转换
  9 --CAST:CAST(值 AS 类型)
 10 PRINT CAST(10 AS varchar(10)) + 
 11 --CONVERT:CONVERT(类型,值)
 12 PRINT CONVERT(varchar(10),10) + 
 13 
 14 --字符串常量
 15 --使用2个单引号来输出单引号
 16 PRINT He said:‘‘Hello!‘‘‘
 17 
 18 --quotename函数
 19 --输出带左右符号的字符串,省去了自己拼凑的麻烦和不易读
 20 --默认符号是[]
 21 PRINT quotename(ID)    --输出:[ID]
 22 PRINT quotename(ID,‘‘‘‘)    --输出:‘ID‘
 23 
 24 --查询对象ID
 25 SELECT DB_ID(中文示例数据库)
 26 SELECT OBJECT_ID(N[dbo].[产品])
 27 
 28 --常用的全局变量
 29 --@@ROWCOUNT 返回受上一语句影响的行数
 30 SELECT * FROM 订单
 31 PRINT 影响的记录条数:+CONVERT(varchar(100),@@ROWCOUNT)
 32 --@@IDENTITY 返回上次插入的标识值
 33 INSERT INTO tbl2(Name) VALUES(111)
 34 GO
 35 PRINT 上次插入的标识值为:+CONVERT(varchar(100),@@IDENTITY)
 36 --@@ERROR返回执行的上一个T-SQL语句的错误号
 37 INSERT INTO tbl2(Name) VALUES(111)
 38 GO
 39 PRINT 上次执行语句的错误号为:+CONVERT(varchar(100),@@ERROR)    --错误号0代表无错误
 40 INSERT INTO tbl2(Name) VALUES(a)
 41 GO
 42 PRINT 上次执行语句的错误号为:+CONVERT(varchar(100),@@ERROR)
 43 --根据错误号查询详细信息
 44 SELECT * FROM sys.sysmessages
 45 
 46 --CASE语句
 47 --格式1:CASE 字段1 WHEN 1 THEN 1 WHEN 2 THEN 2 ... ELSE 10 END
 48 DECLARE @i int
 49 SET @i = 1
 50 PRINT CASE @i 
 51     WHEN 1 THEN 111
 52     WHEN 2 THEN 222
 53     ELSE 333
 54     END    --END不能少!
 55 --格式2:CASE WHEN 表达式1 THEN 1 WHEN 表达式2 THEN 2 ... ELSE 10 END
 56 DECLARE @i int
 57 SET @i = 3
 58 PRINT CASE WHEN @i < 2 THEN 小于2
 59         WHEN @i > 2 AND @i < 5 THEN 小于5
 60         ELSE 大于5
 61         END
 62 
 63 --GOTO语句
 64 DECLARE @num int
 65 SET @num = 1
 66 IF(@num < 0)
 67 GOTO Result1
 68 ELSE
 69 GOTO Result2
 70 
 71 Result1:
 72     PRINT 111
 73 Result2:
 74     PRINT 222
 75 
 76 --TRY CATCH语句
 77 BEGIN TRY
 78     PRINT 输出: + 1
 79 END TRY
 80 BEGIN CATCH
 81     PRINT 出错!错误号: + CONVERT(nvarchar(10),ERROR_NUMBER()) +  错误信息为: + ERROR_MESSAGE()
 82 END CATCH
 83 
 84 --拼凑SQL
 85 --例:将订单表中的1991年到1998年的订单数据分别存入“订单_年份”表中
 86 DECLARE @sql varchar(1000)
 87 DECLARE @year int
 88 SET @year = 1991
 89 WHILE @year <= 1998
 90 BEGIN
 91     SELECT @sql = SELECT * FROM 订单 WHERE YEAR(订购日期) = + CONVERT(varchar(4),@year)
 92     EXEC (@sql)    --此处的括号一定不能少!
 93     IF @@ROWCOUNT > 0    --如果有数据才存入
 94     BEGIN
 95         SELECT @sql = 
 96             SELECT * INTO 订单_ + CONVERT(varchar(4),@year) +  FROM 订单 WHERE YEAR(订购日期) = + CONVERT(varchar(4),@year)    --注意加空格!
 97         PRINT @sql    --用以检验拼凑出的sql是否正确
 98         EXEC (@sql)
 99     END
100     SELECT @year += 1    --@year = @year + 1
101 END

 

SqlCollections - T-SQL程序

标签:style   blog   color   io   ar   使用   sp   数据   div   

原文地址:http://www.cnblogs.com/sky-sun/p/4045457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!