The view will work if you provide access to each database to a configured user. You will need to use point-to-point notation. This will only work BTW if both databases are on the same server.
create view vwUserMessages as
select * from db1.dbo.Users as users
inner join db2.dbo.Messages as msg on msg.UserID = users.id
For CRUD: view (usually) read-only: do updates, etc. directly in linked tables or use a stored procedure:
create proc pdeleteUserMessages (@UserID int) as
begin trans
delete db2.dbo.Messages where userid = @UserID
delete db1.dbo.Users where id = @UserID
commit trans
go
source
share