> The idea is it's merging data from one system into
> another....the 'slave'
> knows nothing about the source data...it references table
> B.....so the data needs to get into B...
>
> I've obviously simplified the example...not only does it need
> to track what's been inserted, but potentially update data
> that has previously been transferred, therefore there needs
> to be some mechanism to correlate the target data B, with
> updates to the source data A.

        I'd use a temptable. Insert the data in there in such a form so it's 
easy to read and insert into the final destination.

        But I admit, I didn't fully read the whole post in such depth that I 
fully grasp the problem as a whole.

                FB

>
> -----Original Message-----
> From: Discussion of advanced .NET topics.
> [mailto:[EMAIL PROTECTED] On Behalf Of
> simon wheeldon
> Sent: 05 October 2006 15:45
> To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
> Subject: Re: [ADVANCED-DOTNET] offish topic question about ms sql....
>
> Does the data actually need to exist in table B? Could you
> add a flag field in table A which is set to indicate data
> that would have otherwise been copied to table B. Then, do a
> union query of B and the records in A with the flag set as
> true. Difficult to tell without knowing how your app relies
> upon table A and B, but a potential solution nonetheless.
>
> Cheers,
> Simon
>
> -----Original Message-----
> From: Discussion of advanced .NET topics.
> [mailto:[EMAIL PROTECTED] On Behalf Of
> Mark Nicholls
> Sent: 05 October 2006 15:18
> To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM
> Subject: [ADVANCED-DOTNET] offish topic question about ms sql....
>
> please ignore me and tell me to go away....it's difficult to
> find a forum where you get intelligent and sensible
> answers.....fawn, fawn.
>
> (though it is sort of associated to dataadapters).
>
> this ones about potentially about MSSQL!
>
> consider a table with data in it..and a unique id....
>
> table A
> a_id int
> data nvarchar(100)
>
> and another similar table
>
> table B
> b_id int
> data nvarchar(100)
>
> you want to insert data into B, that you've never inserted
> before....now you would be tempted to add a new foreign key to B so
>
> table B
> b_id int
> data nvarchar(100)
> a_id int NULL
>
> and then go
> INSERT INTO B (...) SELECT (...) FROM A WHERE A.a_id not in
> (SELECT B.a_id FROM B)...
>
> fine...works a treat....the problem is adding the NULLABLE
> field....it potentially breaks applications....it shouldn't
> in well written apps, but I have a C# app that seems to read
> the data from B using explicit field names ("SELECT b_id,data
> FROM B"), and then (stupidly) writes the data back using
> "Select * FROM B" as the select command in the dataadapter
> writing back (with no explicit update command), the
> dataadapter complains
> (sensibly) that you are trying to write data into a field
> B.a_id when no corresponding source field exists.
>
> answers....
>
> i) rewrite the code properly....hmmm it's a big 3rd party
> written app...not good, rather not go there.
> ii) do the sql in such a manner that doesn't require the
> addition of a_id to table B.
>
> Thinking about option ii).....it would seem to be sensible to
> have a new table
>
> table A_B
> a_id int
> b_id int
>
> that links A and B.....and then all we need to do is
>
> INSERT INTO B (...) SELECT (...) FROM A WHERE A.a_id not in
> (SELECT A_B.a_id FROM A_B)...
>
> now we need to update A_B with the new records
>
> but we can't!!!!!!...because there is no way to correlate the
> data inserted in B with the data inserted in A....
>
> I need to be able to go....
>
> INSERT INTO B (...) SELECT (...) FROM A WHERE A.a_id not in
> (SELECT A_B.a_id FROM A_B)...AND INTO A_B (A_ID,[EMAIL PROTECTED])
>
> or something similar.....no such construct seems to exist.
>
> or cursors?....ooo...nasty...never used them.
>
> ===================================
> This list is hosted by DevelopMentorR  http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com ===================================
> This list is hosted by DevelopMentor(r)  http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com
>
>
> **************************************************************
> *************
> CONFIDENTIALITY NOTICE
>
> The contents of this e-mail are confidential to the ordinary
> user of the e-mail address to which it was addressed, and may
> also be privileged.  If you are not the addressee of this
> e-mail you may not copy, forward, disclose or otherwise use
> it or any part of it in any form whatsoever.If you have
> received this e-mail in error, please e-mail the sender by
> replying to this message.
>
> It is your responsibility to carry out appropriate virus and
> other checks to ensure that this message and any attachments
> do not affect your systems / data. Any views or opinions
> expressed in this e-mail are solely those of the author and
> do not necessarily represent those of MTV Networks Europe
> unless specifically stated, nor does this message form any
> part of any contract unless so stated.
>
> MTV reserves the right to monitor e-mail communications from
> external/internal sources for the purposes of ensuring
> correct and appropriate use of MTV communication equipment.
>
> MTV Networks Europe
> **************************************************************
> *************
>
>
> ===================================
> This list is hosted by DevelopMentorR  http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com
>

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to