0

我有一个触发器对不同的表执行 INSERT_AFTER。目标表是要发送到另一家公司的数据的临时表。在我们这边的数据库中,日期是smalldatetime。另一个公司需要这种拆分为日期字段和时间字段。也没有进入临时表。我尝试了几种不同的方法,包括 CAST 和 CONVERT 都没有成功。

相关的SQL如下:

    CAST(inserted.CallInDate AS DATE)   AS ClientCallinDate,
    CAST(inserted.CallInDate AS TIME)   AS ClientCallinTime,
    --CONVERT(DATE,inserted.CallInDate) AS ClientCallinDate,
    --CONVERT(TIME,inserted.CallInDate) AS ClientCallinTime,

此触发器跟随另一个 INSERT_AFTER 触发器对其他表执行相同的操作。第一个触发器作为“第一个”触发,有问题的触发器作为最后一个触发。

`EXEC sp_settriggerorder @triggername=N'[dbo].[TR_FirstTable_to_Client_I]', @order=N'First', @stmttype=N'INSERT'`

第二个触发器还有另一个字段失败,它是由第一个触发器创建的,作为从另一家公司收到的确认。我不认为这些是相关的,但鉴于我也没有弄清楚,我不能确定。

`EXEC sp_settriggerorder @triggername=N'[dbo].[TR_FirstTable_to_Client_II]', @order=N'Last', @stmttype=N'INSERT'`

我需要知道什么可能会失败或我需要更改 SQL 中的什么。我已经放下触发器并重新创建它,但这没有任何帮助,实际上给了我一个我尚未解决的错误。

4

1 回答 1

0

如果您上面的代码是 INSERT 语句的一部分,它可能只是因为别名而失败:AS ClientCallinDate。只要您的语句构造正确,您就不需要为SELECT语句中的列设置别名。

于 2019-11-20T22:27:44.103 回答