因为有些事物回滚 查询的时候 可能查出来空值 我们肯定不愿意把空值添加数据库里面 一般基本的是这么写 if (object_id('add_T_Disclose_DiscloseList', 'P') is not null) drop proc add_T_Disclose_DiscloseList go create proc add_T_Disclose_DiscloseList @user_id nvarchar(), @title_id nvarchar(max), @jiaodi_
下面直接上代码(copy到你的数据库里面直接就可以运行): CREATE PROCEDURE [dbo].[SP_UPDATE_LOG] ) AS BEGIN SET NOCOUNT ON; IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @TABLENAME AND TYPE = 'U' ) BEGIN PRINT'ERROR:not exist table '+@TABLENAME RETURN END IF (@TABLENAME L
如果要在Production执行数据改动必须小心,可以使用事务提前验证一下自己写的SQL是不是你期望的.尤其是Update的where 条件有问题的话,跟新的记录就会超出预期的范围.如下面的语句,一着急我差点把cartid 忘了,要是在Production执行影响就大了. BEGIN TRANSACTION and modifieddate > '2014-08-07' order by modifieddate desc ROLLBACK TRANSACTION 下面语句实现begin tra
一个存储过程中多个更新操作,后面的更新操作出现异常,如果不手动回滚前面修改的数据是不会自动撤销的! BEGIN TRY BEGIN TRAN -- ..... COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN ) SELECT @ErrorMessag = Error_message() ,,,@ErrorMessag); END CATCH 另参考: http://msdn.microsoft.com/zh-cn/library/ms178592.as