【问题标题】:Trouble creating error message in SQL Server在 SQL Server 中创建错误消息时遇到问题
【发布时间】:2012-01-30 15:25:05
【问题描述】:

我的stored procedure 中有以下代码,我知道它不起作用也不应该起作用,但我想说明我的意图:

 declare @ErrorMessages varchar;
 set @ErrorMessages = 'An existing deposit on this property ends after the intended start date for the new deposit. ' +
    'Existing End Date: ' + @PreviousDepositEndDate + '. Intended Start Date: ' + @TenancyAgreementStartDate
  raiserror 50002 @ErrorMessages

谁能告诉我我应该做什么?或有关创建此类字符串的任何链接。

编辑:忘了说@Dates 都是datetime,错误信息是它不能从日期时间转换为字符串

【问题讨论】:

  • @ErrorMessages 指定一个大小 - 它怎么不起作用?显示什么错误,@PreviousDepositEndDate 等是什么类型。
  • @AlexK。忘了说它是一个日期时间

标签: sql sql-server-2008 raiserror


【解决方案1】:

试试这个:

 declare @ErrorMessages varchar(255);

仅使用@ErrorMessages varchar; 即可获得varchar(1)

set @ErrorMessages = 
      'An existing deposit on this property ends after the intended start date for the new deposit. ' + 
      'Existing End Date: ' + 
      @PreviousDepositEndDate + '. Intended Start Date: ' + @TenancyAgreementStartDate

  raiserror(@ErrorMessages, 16, 1)

如果你不想指定错误号,你必须先使用sp_addmessage并定义错误信息,你可以参考raiserror。您可能需要插入一些演员表,具体取决于 @PreviousDepositEndDate@TenancyAgreementStartDate 的类型。

【讨论】:

    【解决方案2】:

    这是一个略有不同的版本,有些人喜欢它,因为它模仿 C printf 风格:

    -- Test data
    declare @PreviousDepositEndDate varchar(30) = cast(getdate() - 1 as varchar(30))
        , @TenancyAgreementStartDate varchar(30) = cast(getdate() as varchar(30))
    -- Throw
    raiserror (N'An existing deposit on this property ends after the intended start date for the new deposit. Existing End Date: %s. Intended Start Date: %s',
               16, -- Severity,
               1, -- State,
               @PreviousDepositEndDate, -- First argument.
               @TenancyAgreementStartDate) -- Second argument.
    

    更多信息可以在这个 MSDN 链接中找到:http://msdn.microsoft.com/en-us/library/ms178592.aspx

    【讨论】:

      猜你喜欢
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      相关资源
      最近更新 更多