column name u can pretain as C1, C2
'Normally', related tables live within the same database.
The Foreign Key constraint declaration doesn't go outside the scope of the database, so in this case you can't declare a FK constraint.
AFAIK, the option you have to enforce cross-database FK relationships, is by using triggers.
/Kenneth
|||You can’t create a constraint across the database. But there is a workaround available to fix your issue. Using Instead of trigger / for after trigger. But I recommend to use the Instead of Trigger rather than after trigger..
Code Snippet
Use DB1
Go
Create table A
(
ID int Primary Key,
Name varchar(100)
)
Go
Code Snippet
Use DB2
Go
Create table BB
(
Id int,
[Desc] varchar(100)
)
Go
CreateTrigger BB_Triger
on BBInstead of Insert
as
Begin
Insert Into BB
Select * from Inserted as ins Where Exists (Select 1 From DB1..A a Where a.id = ins.id)
End
/*
--use any one
Create Trigger BB_Triger
on BBAfter Insert
as
Begin
Delete from BB
Where NOT EXISTS (Select 1 From DB1..A a Where a.id = BB.id)
End
*/
GO
Code Snippet
Insert Into DB1..A values(1,'One')
Insert Into DB2..A values(2,'Two')
Code Snippet
Insert Into DB2..BB values(1,'Valid')
select * from BB
Insert Into DB2..BB values(4,'In Valid')
select * from BB
|||Thanks good idea
No comments:
Post a Comment