首页 > 代码库 > SqlCollections - T-SQL程序
SqlCollections - T-SQL程序
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 END100 SELECT @year += 1 --@year = @year + 1101 END
SqlCollections - T-SQL程序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。