Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> mssql serv 2005 Linked server zapytanie z insertem
stachuf11
post
Post #1





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

Ostrzeżenie: (0%)
-----


witam
temat jest taki
w Mssql 2005 mam podlinkowany serwer mysql o nazwie np 'BAZAMYSQL'

terraz aby pobrac dane z tej bazy z tabeli osoby uzywam query

  1. SELECT * FROM OPENQUERY(BAZAMYSQL, "SELECT * FROM OSOBY" )


no i wyświetla mi listę rekordów
A teraz jeśli chciałbym dodać osobę do tej tabeli OSOBY w bazie podlinkowanej, jak ma wyglądać zapytanie, nie mam pojęcia, szukałem w google, w msdn i nie znalazłem, pomoże ktoś?
Nie działą zwykłe zapytanie z insertem np
  1. INSERT INTO BAZAMYSQL.OSOBY ...........

wyskakuje błąd że nieznana nazwa BAZAMYSQL


Stachu




juz znalazłem
w MSDN trzeba szukać po haśle OPENQUERY

poniżej przykład do ORACLA, ale myślę że do MYSQL-a będzie tak samo
  1. INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles')
  2. VALUES ('NewTitle');


pozdrawiam
Stachu
Go to the top of the page
+Quote Post
prachwal
post
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 18
Dołączył: 13.03.2009
Skąd: lublin

Ostrzeżenie: (0%)
-----


  1. EXEC ('SELECT TOP 10 * FROM AdventureWorks.Sales.Customer
  2. WHERE CustomerID = ? AND LastName = ?', 10, 'Garza') AT [<LINKED-SERVER-NAME>];


zamiast SELECT możesz dać natywnego INSERT-a w MySQL-u, parametry są po przecinku i mogą być w zmiennych

i ważne znak zapytania odpowiada przypisaniu jednego parametru - liczy się kolejność parametrów w zapytaniu

no i ważne trzeba ustawić RPC

http://www.packtpub.com/article/mysql-link...sql-server-2008 ( w 2005 jest dokładnie tak samo)
Go to the top of the page
+Quote Post
stachuf11
post
Post #3





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

Ostrzeżenie: (0%)
-----


napotkałem jednak przeszkodę, chciałem dodać rekord w linkedserver t triggerze after insert, jednak niestety wyskakuje bład
"MSDTC on server.... in unavailable "
cokolwiek konkretnego chciałbym zrobic, kłody pod nogi się sypią sad.gif, otworzyc pliku z exe się nie da, wstawić rekordu do mysql-a po insercie też niemożliwe,

Ten post edytował stachuf11 11.08.2009, 09:11:30
Go to the top of the page
+Quote Post
prachwal
post
Post #4





Grupa: Zarejestrowani
Postów: 171
Pomógł: 18
Dołączył: 13.03.2009
Skąd: lublin

Ostrzeżenie: (0%)
-----


Cytat(stachuf11 @ 11.08.2009, 10:11:04 ) *
napotkałem jednak przeszkodę, chciałem dodać rekord w linkedserver t triggerze after insert, jednak niestety wyskakuje bład
"MSDTC on server.... in unavailable "
cokolwiek konkretnego chciałbym zrobic, kłody pod nogi się sypią sad.gif , otworzyc pliku z exe się nie da, wstawić rekordu do mysql-a po insercie też niemożliwe,



to włącz tą usługę winksmiley.jpg

http://geekswithblogs.net/narent/archive/2...0/09/93544.aspx
Go to the top of the page
+Quote Post
stachuf11
post
Post #5





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

Ostrzeżenie: (0%)
-----


włączyłem tą usługę i działa smile.gif, mogę dodawać inserty do linked server w triggerze after insert

dziekuję serdecznie za pomoc
pozdrawiam
Go to the top of the page
+Quote Post
prachwal
post
Post #6





Grupa: Zarejestrowani
Postów: 171
Pomógł: 18
Dołączył: 13.03.2009
Skąd: lublin

Ostrzeżenie: (0%)
-----


Cytat(stachuf11 @ 11.08.2009, 10:51:51 ) *
włączyłem tą usługę i działa smile.gif , mogę dodawać inserty do linked server w triggerze after insert

dziekuję serdecznie za pomoc
pozdrawiam


jak korzystasz z exec (...) at linked_server to koniecznie musisz mieć kursor przerabiający wszystkie rekordy w tabeli wirtualnej inserted

jak robisz za pomocą

update openquery (linked_server,'select * from ....')
set cos = cos.innego
where costam costam

to wystarczy zrobic joina z tabela wirtualna inserted, ale dziala wolniej sad.gif

Ten post edytował prachwal 11.08.2009, 09:58:50
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 06:23