gpt4 book ai didi

sql-server - 异构查询需要 ANSI_NULLS

转载 作者:行者123 更新时间:2023-12-04 04:29:32 27 4
gpt4 key购买 nike

我写了一个触发器。

USE [TEST]
GO
/****** Object: Trigger [dbo].[TR_POSTGRESQL_UPDATE_YC] Script Date: 05/26/2010 08:54:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[TR_POSTGRESQL_UPDATE_YC] ON [dbo].[BCT_CNTR_EVENTS]

FOR INSERT
AS
BEGIN


DECLARE @MOVE_TIME varchar(14);
DECLARE @MOVE_TIME_FORMATED varchar(20);
DECLARE @RELEASE_NOTE varchar(32);
DECLARE @CMR_NUMBER varchar(15);
DECLARE @MOVE_TYPE varchar(2);

SELECT @MOVE_TIME = inserted.move_time
,@MOVE_TYPE = inserted.move_type
,@RELEASE_NOTE = inserted.release_note
,@CMR_NUMBER = inserted.cmr_number FROM inserted


IF(@MOVE_TYPE = 'YC')
BEGIN

SET @MOVE_TIME_FORMATED = SUBSTRING(@MOVE_TIME,1,4) + '-' + SUBSTRING(@MOVE_TIME,5,2) + '-' + SUBSTRING(@MOVE_TIME,7,2) + ' 00:00:00'

--UPDATE OpenQuery(POSTGRESQL_SERV,'SELECT visit_cmr,visit_timestamp,visit_pin FROM VISIT')
-- SET visit_cmr = @RELEASE_NOTE
-- WHERE visit_timestamp = @MOVE_TIME_FORMATED
-- AND visit_pin = right(@CMR_NUMBER,5)
-- AND visit_cmr IS NULL

END

SET NOCOUNT ON;
END

当我尝试插入一行时收到错误。

Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS options to be set for the connection. This ensures consistent query semantics. Enable these options and then reissue your query.



之后我尝试使用 SET SET ANSI_WARNINGS is ON ,然而它不起作用。 (链接服务器 PostgreSql 的触发器)

最佳答案

尝试使用此

GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[TR_POSTGRESQL_UPDATE_YC] ON [dbo].[BCT_CNTR_EVENTS]

AFTER INSERT
AS
BEGIN


DECLARE @MOVE_TIME varchar(14);
DECLARE @MOVE_TIME_FORMATED varchar(20);
DECLARE @RELEASE_NOTE varchar(32);
DECLARE @CMR_NUMBER varchar(15);
DECLARE @MOVE_TYPE varchar(2);

SELECT @MOVE_TIME = inserted.move_time
,@MOVE_TYPE = inserted.move_type
,@RELEASE_NOTE = inserted.release_note
,@CMR_NUMBER = inserted.cmr_number FROM inserted


IF(@MOVE_TYPE = 'YT')
BEGIN

SET @MOVE_TIME_FORMATED = SUBSTRING(@MOVE_TIME,1,4) + '-' + SUBSTRING(@MOVE_TIME,5,2) + '-' + SUBSTRING(@MOVE_TIME,7,2) + ' 00:00:00'

SET ANSI_NULLS ON
SET ANSI_WARNINGS ON

UPDATE OpenQuery(POSTGRESQL_SERV,'SELECT visit_cmr,visit_timestamp,visit_pin FROM VISIT')
SET visit_cmr = @RELEASE_NOTE
WHERE visit_timestamp = @MOVE_TIME_FORMATED
AND visit_pin = right(@CMR_NUMBER,5)
AND visit_cmr IS NULL

END

SET NOCOUNT ON;
END

关于sql-server - 异构查询需要 ANSI_NULLS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2910426/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com