SQLServer 进阶记录式学习

1.强制类型转换  nvarchar->decimal

DECLARE @i NVARCHAR(20) ,
    @num DECIMAL(10, 4)
SET @i = '1083.589'
SET @num = @i
SELECT  @num

SET @num = CAST(@i AS DECIMAL(10, 4))
SELECT  @num 
DECLARE @i NVARCHAR(20) ,
    @num DECIMAL(10, 4)
SET @i = '1083.589'
SET @num = @i
SELECT  @num

SET @num = CONVERT (DECIMAL(10, 4),@i)
SELECT  @num 

 2.存储过程执行慢的可能原因和解决方法

执行较慢,可能是当存储过程涉及的对象结构调整, 或者相关的数据产生了很大变化, 这可能导致原来的计划不适合当前的现状(执行计划过期), 这种情况下应该重新编译存储过程。 

重新强制重编译存储过程

exec sp_recompile @objname='存储过程的名字'

 3.存储过程返回表数据并保存到相同结构的临时表中

SELECT  *
INTO    #a
FROM    OPENROWSET('SQLOLEDB', 'Server=.;Database=Demo;uid=sa;pwd=123',
                   'exec p_Demo') AS a
SELECT  *
FROM    #a
Create table #table( 字段1,字段2)     insert into #table  exec 存储过程

4.获取当前时间并转化为字符串类型

2017-08-04 11:41:59

SELECT  CONVERT(VARCHAR(100), GETDATE(), 120)

20170804

SELECT  CONVERT(VARCHAR(100), GETDATE(), 112)

5.

原文地址:https://www.cnblogs.com/GaoAnLee/p/7280081.html