[MSSQL] Error bij update naar linked server

Pagina: 1
Acties:

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Topicstarter
Heb al gezocht op GoT, Google, msdn en support.microsoft, maar of er is niet veel zinnigs over te vinden of ik zoek niet goed.

Heb onderstaande queries geprobeerd (versimpelde weergave):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
update [LINKED_SERVER].[DB].[dbo].[TABLE] 
set    [KOLOM1] = 'foo'
where  [KOLOM2] = 'bar'
-- geeft error

update [LINKED_SERVER].[DB].[dbo].[TABLE] 
set    [KOLOM1] = 'foo'
from   [LINKED_SERVER].[DB].[dbo].[TABLE]
where  [KOLOM2] = 'bar'
-- geeft error

select *
from   [LINKED_SERVER].[DB].[dbo].[TABLE]
where  [KOLOM2] = 'bar'
-- werkt perfect

:?

De errormelding is:
code:
1
2
3
4
5
6
Server: Msg 7306, Level 16, State 2, Line 1
Could not open table '"DB"."dbo"."TABLE"' from OLE DB provider 'SQLOLEDB'.  
The provider could not support a row lookup position. 
The provider indicates that conflicts occurred with other properties or requirements.
[OLE/DB provider returned message: Multiple-step OLE DB operation generated errors. 
Check each OLE DB status value, if available. No work was done.]

Wie geeft me een duw in de goede richting?
* Annie weet het niet meer |:( :'(

Today's subliminal thought is:


  • El_BingO
  • Registratie: Juli 2001
  • Laatst online: 26-08 12:01
Als je in je connection string meegeeft welke Catalog (database) hij moet gebruiken hoef je alleen maar [TABLE] mee te geven.
code:
1
Initial Catalog=[dbnaam]

En dan:
code:
1
2
3
update [TABLE] 
set    [KOLOM1] = 'foo'
where  [KOLOM2] = 'bar'

Wat doet ie dan?

Verwijderd

De user waarmee je verbinding maakt, heeft die wel updaterechten op die tabel op de linked server? Riekt ernaar van niet.

  • El_BingO
  • Registratie: Juli 2001
  • Laatst online: 26-08 12:01
Op donderdag 11 juli 2002 11:19 schreef Otis het volgende:
De user waarmee je verbinding maakt, heeft die wel updaterechten op die tabel op de linked server? Riekt ernaar van niet.
Ja dat zou ook heel goed kunnen. Want de select query werkt wel.
Bovendien is het misschien handig om je connection_string ook eens helemaal na te lopen.

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Topicstarter
Op donderdag 11 juli 2002 11:17 schreef El_BingO het volgende:
Als je in je connection string meegeeft welke Catalog (database) hij moet gebruiken hoef je alleen maar [TABLE] mee te geven.
uhm, nee. Ik werk hier met een linked server en zal bij mijn weten toch echt de servernaam mee moeten geven. Correct me if i'm wrong. Ik vuur de queries overigens af in de QA.
[LINKED_SERVER]...[TABLE] oid werkt iig niet.
Op donderdag 11 juli 2002 11:19 schreef Otis het volgende:
De user waarmee je verbinding maakt, heeft die wel updaterechten op die tabel op de linked server? Riekt ernaar van niet.
User is sysadmin en ik heb de optie "they will be impersonated" aangegeven onder het security tabje van de linked server. Lijkt mij goed, please correct me if i'm wrong.

Today's subliminal thought is:


Verwijderd

[b]Op donderdag 11 juli 2002 11:32 schreef Annie het [..]
User is sysadmin en ik heb de optie "they will be impersonated" aangegeven onder het security tabje van de linked server. Lijkt mij goed, please correct me if i'm wrong.
Dit impersonaten werkt niet op NT4. (De SID is niet overdraagbaar)

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Topicstarter
Op donderdag 11 juli 2002 11:50 schreef Otis het volgende:

[..]

Dit impersonaten werkt niet op NT4. (De SID is niet overdraagbaar)
Maar als ik ze map naar een remote user krijg ik dezelfde melding. Begrijp ik dit principe nu niet goed of ... :?

Today's subliminal thought is:


Verwijderd

De LoginID is veelal niet gelijk, je gaat dus server B linken aan server A IN A. Je geeft dus een localID op van A bij de security en zegt 'impersonate', aangevende dat de localID van A gelijk is aan de localID van B. Dit werkt niet in jouw situatie.

Ik krijg het hier gewoon aan de gang door de juiste mappings goed te definieren, dus welke user local en welke user remote. Als je 'impersonate' uitzet, werkt het dan wel?

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Topicstarter
Op donderdag 11 juli 2002 14:55 schreef Otis het volgende:
Ik krijg het hier gewoon aan de gang door de juiste mappings goed te definieren, dus welke user local en welke user remote. Als je 'impersonate' uitzet, werkt het dan wel?
Kan het helaas nu niet meer uittesten (situatie speelt bij klant), maar zal hier volgende week zeker nog naar kijken.

Ik heb zoals ik al zei al wel geprobeerd om de users te 'mappen' naar 1 enkele remote login, alleen lukte dat ook niet. Misschien toch maar 's proberen om de user van A specifiek te 'mappen' aan een user van B.

iig dank.

* Annie gaat nu toch maar 's naar huis :z

Today's subliminal thought is:

Pagina: 1