July 24, 2006 at 5:25 pm
I need to update a Sybase ASE table from a MS Sql server (2000 now, 2005 soon).
I can get inserts to work, but how do I update ASE from MS?
The only examples I can find are trivial. Can I update with a join?
In a nutshell..
Both databases have an emp table with columns emp_id{pkey}, emp_name, emp_status
ASE linked server is ASEls, ASE server is ASE, db is myasedb
MS server is MS, db is mymsdb
insert openquery(ASEls,'select emp_id, emp_name, emp_status' from myasedb..emp where 1=0')
select emp_id, emp_name, emp_status from mymsdb
[note: there is more to the query that inserts only new rows, but it would just get in the way here]
All the examples I have found restrict the openquery select (ASEls in my case) to a single row.
I want to update all the rows that have changed since the last update.
update openquery(ASEls,'select emp_id, emp_name, emp_status' from myasedb..emp '
set emp_name = ms.dbo.emp_name,
emp_status = ms.dbo.emp_status
from ms.dbo.emp_status
where ms.dbo.emp_id = ???????????????
I'm stuck here. I do not know how the join works with openquery.
I workaround will be to create a emp_update table on ASE, insert to it, let an ASE insert trigger update the emp table, but I hoped to do it with openquery.
Thanks
July 25, 2006 at 11:10 am
In my experience linking to a MySQL database, you simply surround your OPENQUERY statement in parenthesis and place it into your join.
SELECT a.*, b.* FROM tbl1 INNER JOIN (SELECT * FROM OPENQUERY([LinkedServerName],'SELECT * FROM [tblname];') b
I know that this works for MySQL from SQL. Not too sure about Sybase.
R.
Viewing 2 posts - 1 through 1 (of 1 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy