sqlserver 创建存储过程(插入数据操作)需要try catch以及select时候使用WITH NOLOCK避免死锁

USE [XXX] -----数据库的表名
GO
/****** Object:  StoredProcedure [dbo].[spGetMonthlyData]    Script Date: 1/23/2019 5:15:48 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

 
 **************************************************/

CREATE PROCEDURE [dbo].[spGetMonthlyData] 
    @yearMonth varchar(50) --format like 201901     
AS
BEGIN
BEGIN TRY
  --Create views for DownloadURICountryMonthly 
   Declare @URICountrysqlStr varchar(2000)  -----声明

   Set @URICountrysqlStr ='insert into

   table(value1,value2,value3,value4,value5)
   SELECT SUBSTRING([value1],1,6) ,[value2],[value3],sum(value4) as Completed ,sum(value5) as ActivityCount
   FROM 
    table2 WITH(NOLOCK) where SUBSTRING([value1],1,6)= '+@yearMonth+'
   GROUP BY SUBSTRING([value1],1,6),[value2],[value3]'

   EXEC(@URICountrysqlStr)

   print 'success table1'+ @yearMonth +'completed!'
END TRY
BEGIN CATCH
    PRINT 'ErrorNumber: ' + CONVERT(varchar(20), ERROR_NUMBER()) + ', ErrorMessage:' +  CONVERT(varchar(4000), ERROR_MESSAGE())
END CATCH
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值