首页 > 代码库 > T-SQL基础--chp10可编程对象学习笔记[下]
T-SQL基础--chp10可编程对象学习笔记[下]
--2014年9月29日9:15:29--P338--两种执行动态SQL的方法--EXEC命令DECLARE @sql AS VARCHAR(100);SET @sql = ‘PRINT ‘‘This message was printed by a dynamic SQL batch‘‘;‘;--注意,对于字符串中的字符串,需要用两个单引号(不是双引号!)来代表一个单引号EXEC(@sql);--sp_executesql存储过程[两个输入参数和一个参数赋值部分]DECLARE @sql AS NVARCHAR(100);SET @sql = N‘SELECT orderid,custid,empid,orderdate FROM Sales.OrdersWHERE orderid = @orderid‘;EXEC sp_executesql @stmt = @sql, --该参数中需要包含想要运行的批处理代码的Unicode字符串 @params = N‘@orderid AS INT‘, --该参数是一个unicode,该参数包含@stmt中所有输入和输出参数的声明 @orderid = 10248;--为输入和输出参数指定 --在PIVOT中使用动态SQL P343 暂略--例程是为了计算结果或执行任务而对代码进行封装的一种编程对象--例程1:用户自定义函数 标量UDF(返回单个数据值)+表值UDF(返回一个表)--表值UDF只能在查询的FROM子句中出现USE TSQLFundamentals2008;IF OBJECT_ID(‘dbo.fn_age‘) IS NOT NULL DROP FUNCTION dbo.fn_age;GOCREATE FUNCTION dbo.fn_age( @birthdate AS DATETIME, @eventdate AS DATETIME)RETURNS INTASBEGIN RETURN DATEDIFF(year,@birthdate,@eventdate) - CASE WHEN 100 * MONTH(@eventdate) + DAY(@eventdate) < 100 * MONTH(@birthdate) + DAY(@birthdate) THEN 1 ELSE 0 ENDENDGOSELECT empid, firstname, lastname, birthdate, dbo.fn_age(birthdate,CURRENT_TIMESTAMP) AS ageFROM HR.Employees;--存储过程(略)--触发器[一种特殊的存储过程,不能被显式执行,必须依赖于一个事件的过程]--错误处理--TRY CATCH第10章 完
T-SQL基础--chp10可编程对象学习笔记[下]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。