首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Server 2008中无法使用带有Go语句的事务

在Server 2008中无法使用带有Go语句的事务
EN

Stack Overflow用户
提问于 2016-02-26 11:48:07
回答 1查看 90关注 0票数 0
代码语言:javascript
复制
BEGIN TRY
    BEGIN TRANSACTION
SET ANSI_NULLS ON
Go

SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION dbo.RerurnStaticValue
(
@value nvarchar(10)
)
RETURNS varchar(max)
AS 
   BEGIN

      DECLARE
         @ReturnValue nvarchar(10)
         SET @ReturnValue = @value
         RETURN @ReturnValue
    END  
        COMMIT TRAN -- Transaction Success!
END TRY
BEGIN CATCH
    IF @@TRANCOUNT > 0
        ROLLBACK TRAN --RollBack in case of Error
    select ERROR_MESSAGE()
END CATCH

我正在准备一个非常长的脚本,并试图在脚本中实现事务,所以如果我的脚本中有任何错误,它将不会影响我的数据库。但是,在实现事务时,我得到的错误创建函数必须是批处理中唯一的语句。

请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2016-02-26 11:54:50

我认为关于函数的文档非常清楚:

用户定义的函数不能用于执行修改数据库状态的操作。

COMMIT/ROLLBACK肯定属于这一类。

使用存储过程代替。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35650921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档