ROUND 用法:

--15.000 表示小数点第一位取四舍五入,将原小数点后的位数都设置为0
SELECT ROUND(15.258,0)

--15.300,第二个参数如果是1,则取原值小数点后第一位的四舍五入法,小数点第一位之后的参数用0代替
SELECT ROUND(15.258,1)

space用法:

space()是SQL的函数: 返回一个字符串,其中包含N个空格字符。

--
例: select space(3);返回0个空格字符。

可以使用len(space(3));获取的长度为0

例如:

select replace(space(10 - LEN(convert(nvarchar(30), 114))), space(1), '0')

获取的长度为7,以第二个参数的长度为一个单位进行分割,例如是1,就是分7个单位,每个为0;结果:0000000

如果是2,则最多可分为3个单位,则结果为000

如果是3,则最多分为2个单位,结果为00

如果为4,5,6,7,则最多可分为1个单位,结果就是0

--2
SELECT charINDEX('bce','abcd')

-- 2
SELECT PATINDEX('%bce%','abcd')
--bcd
SELECT x = SUBSTRING('abcdef', 2, 3)

--字符串类型的10
SELECT CAST(10 AS nvarchar(MAX))

---abxxxfghixxx
SELECT REPLACE('abcdefghicde','cde','xxx')

set @vendorName=REPLACE(@vendorName,'''','''''')

--07/04/2016 (一般在时间格式和字符串格式之间相互转换)
SELECT CONVERT(varchar(30),getdate(),101) now

当然也可以:

select  convert(nvarchar(30), g.Id)

--

ISNULL(@user, '0')

该字段如果存在null,则转为字符串类型:"0"

--开启

可以在存储过程设置这个参数:

--一个是否成功的标记

@adjustResult INT = NULL OUTPUT --结果:1:成功,0失败

SET QUOTED_IDENTIFIER ON

添加异常捕捉和事务处理

BEGIN TRY

BEGIN TRANSACTION

--todo 业务

--比如

SELECT @oldStockQuantity = StockQuantity, @allowPreOrder = AllowPreOrder, @preOrderStockQuantity = PreOrderStockQuantity
FROM dbo.User WITH(UPDLOCK) WHERE Id = @Id

SET @newStockQuantity = @oldStockQuantity + @quantityToChange

IF @allowPreOrder = 0 AND @newStockQuantity < 0
SELECT 0;
ELSE IF @allowPreOrder = 1 AND @newStockQuantity < (-1) * @preOrderStockQuantity
SELECT 0;;
ELSE
BEGIN
UPDATE dbo.Goods
SET StockQuantity = @newStockQuantity
WHERE Id = @goodsId

SELECT 1
END

COMMIT TRANSACTION

END TRY

BEGIN CATCH
IF @@TRANCOUNT > 0 or xact_state() <>0
ROLLBACK TRANSACTION ;
DECLARE @ExtErrMsg NVARCHAR(4000)
DECLARE @ERROR_MESSAGE NVARCHAR(4000) = ERROR_MESSAGE()
DECLARE @ERROR_SEVERITY INT = ERROR_SEVERITY()
DECLARE @ERROR_STATE INT = ERROR_STATE()
DECLARE @ERROR_PROCEDURE NVARCHAR(4000) = ERROR_PROCEDURE()
DECLARE @ERROR_LINE INT = ERROR_LINE()
DECLARE @ERROR_NUMBER INT = ERROR_NUMBER()
IF @ERROR_PROCEDURE IS NULL SET @ERROR_PROCEDURE = ISNULL(OBJECT_NAME(@@PROCID), 'nul')
SET @ExtErrMsg = ISNULL(@ERROR_PROCEDURE, 'nul') + ':'+ CONVERT(NVARCHAR(10), @ERROR_LINE) + ':' + @ERROR_MESSAGE
--EXEC WriteLogMessage @@PROCID, @@NESTLEVEL, '', @ERROR_LINE, @ERROR_MESSAGE, @ERROR_NUMBER, @ERROR_PROCEDURE, @ERROR_SEVERITY,@ERROR_STATE;
RAISERROR ( @ExtErrMsg, @ERROR_SEVERITY, @ERROR_STATE ) WITH LOG ;
RETURN '' ;
END CATCH

--关闭

SET QUOTED_IDENTIFIER OFF

最新文章

  1. python脚本实现scp上传下载功能
  2. JMeter学习(十七)JMeter测试Java
  3. Oracle参数化查询
  4. 【转】copy 和 mutablecopy (深拷贝和浅拷贝)
  5. SVN linux端配置
  6. 给ie浏览器添加推荐浏览器提示
  7. java--偏向锁
  8. node c++多线程插件 第二天 c++指针
  9. mysql5.6 rpm安装配置
  10. UPDATE/INSERT用法研究
  11. Flume1.9.0的安装、部署、简单应用(含分布式、与Hadoop3.1.2、Hbase1.4.9的案例)
  12. Docker安装rabbitmq
  13. 使用 JSON-lib 出现异常 java.lang.reflect.InvocationTargetException
  14. springboot-32-使用mvc测试
  15. Jmeter(二十二)_脚本上传Gitlab
  16. vue父组件向子组件动态传值的两种方法
  17. 06 数据库入门学习-视图、sql注入、事务、存储过程
  18. Tomact8部署在linux下启动很慢详解
  19. 用canvas播放scratch文件
  20. STL源码剖析(仿函数/bind2nd)

热门文章

  1. VS2005 工程在win7下使用管理员权限运行
  2. NEsper事件处理 z
  3. GUN/GPL 中文译文
  4. as3+java+mysql(mybatis) 数据自动工具(三)
  5. hbase单机环境的搭建和完全分布式Hbase集群安装配置
  6. mac os develop
  7. vijosP1447 开关灯泡
  8. VMWare虚拟机USB连接问题
  9. 【解决】UEFI+GPT模式下装系统(WIN7/WIN8)
  10. HW2.20