Billy Pang
tuxedo_man at hotmail.com
Tue Jul 13 22:34:38 CDT 2004
Hello:
I am wondering, is possible to propogate the values of primary key into a
foreign key of another table from a view insert.
To illustrate, please see following illustration:
/* ---- cut here ---- */
use tempdb
go
begin tran
set nocount on
go
create table tablea(tablea_id int not null identity(1,1) primary key,
tablea_value varchar(50)
);
go
create table tableb(tableb_id int not null identity(1,1) primary key,
tableb_tablea_id int constraint fk_tableb_tablea_id foreign key references
tablea(tablea_id),
tableb_value varchar(50)
);
go
create view dd1 as
select tablea_id, tablea_value, tableb_id, tableb_value from tablea inner
join tableb on tablea_id = tableb_tablea_id
go
insert into dd1(tablea_value, tableb_value) values('eee1b','eee1b');
/* above insert results with "Server: Msg 4405, Level 16, State 2, Line 1"
*/
/* View or function 'dd1' is not updatable because the modification affects
multiple base tables. */
go
rollback;
/* ---- cut here ---- */
In the above example, tableb has tablea_id fk. I have a view that joins
those two tables together. When a record is insert into the view, I would
like it to automatically populate both tablea and tableb (yes, that includes
having the tableb_table_id column populated with the value of the tablea_id
column that was just created). Sometimes, the insert statement that
populates the view might use a SELECT as a source. Can this be done
(without using a db cursor)?
thanks in advance
Billy
_________________________________________________________________
MSN Premium: Up to 11 personalized e-mail addresses and 2 months FREE*
http://join.msn.com/?pgmarket=en-ca&page=byoa/prem&xAPID=1994&DI=1034&SU=http://hotmail.com/enca&HL=Market_MSNIS_Taglines