Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
delete触发器删除另一个数据库sql中另一个表中的行_Sql_Sql Server_Triggers_Delete Row - Fatal编程技术网

delete触发器删除另一个数据库sql中另一个表中的行

delete触发器删除另一个数据库sql中另一个表中的行,sql,sql-server,triggers,delete-row,Sql,Sql Server,Triggers,Delete Row,我有一个名为Fulcrum的数据库模式,它有一个名为Orders的表,在OrderNO、OrderDate、TenantID上有PK 我有一个名为XFer的桥接数据库模式,其中还有一个名为Orders的表,具有相同的字段名,但在OrderNO、OrderDate、TenantID上没有键 我需要在Xfer中的Orders后面创建一个触发器,当我删除Xfer.dbo.Orders中的行时,该触发器将删除Fulcrum.dbo.Orders中的匹配行 谢谢考虑到您正在使用Microsoft SQL

我有一个名为Fulcrum的数据库模式,它有一个名为Orders的表,在OrderNO、OrderDate、TenantID上有PK

我有一个名为XFer的桥接数据库模式,其中还有一个名为Orders的表,具有相同的字段名,但在OrderNO、OrderDate、TenantID上没有键


我需要在Xfer中的Orders后面创建一个触发器,当我删除Xfer.dbo.Orders中的行时,该触发器将删除Fulcrum.dbo.Orders中的匹配行


谢谢

考虑到您正在使用Microsoft SQL Server语法来创建此类触发器,请执行以下操作:

CREATE TRIGGER [XFer].[dbo].[OrderDeleted]
ON [Xfer].[dbo].[Orders]
AFTER DELETE
AS
BEGIN

   DELETE FROM [Fulcrum].[dbo].[Orders] WHERE [Fulcrum].[dbo].[Orders].[OrderNO] IN (SELECT [XFer].[dbo].[Orders].[OrderNO] FROM DELETED)  

END

显然,语法可能并不完美,但这与您需要的非常接近。

您有问题吗?这是什么数据库?您使用的是什么数据库系统?两个数据库都在同一台服务器上吗?我需要在Xfer中的订单后面创建一个触发器,当我删除Xfer.dbo.ordersYes中的行时,该触发器将删除Fulcrum.dbo.Orders中的匹配行,但您使用的是什么?MySQL、PostgreSQL、Microsoft SQL Server、Oracle、,Sybase和IBM DB2。如果有3个字段组成标识要删除的记录的唯一性,我可以使用以下语法:是,您可以相应地更改where子句。如果有3个字段组成标识要删除的记录的唯一性,我如何标识所有3个字段?我可以在he中标识它们吗选择part或者我需要在DELETED中的Select field1,field2,field3中说出field1,field2,field3的位置吗?您不必像在Select[XFer].[dbo].[Orders].[OrderNO]中的[Fulcrum].[dbo].[Orders].[OrderNO]中的[Fulcrum].[dbo].[OrderDate]中的[Fulcrum].[dbo].[OrderDate]那样做从DELETED like wise..我得到了一个多部分错误,所以我删除了数据库和dbo.tablename的引用,但在select部分保留了filedname,它很有效,非常感谢