Just nu i M3-nätverket
Gå till innehåll

Dynamiska SQL-frågor


BombusEk

Rekommendera Poster

Jag har behov av att kunna dynamiskt ändra till vilken databas anropet sker i ett skript. Exempel på hur jag skulle vilja göra:

 

DECLARE @db varchar(50)

SET @db = 'databas2..'

 

IF EXISTS(SELECT * FROM @db+'Roles' WHERE id=1)

...

 

Det duger alltså inte med vanliga sp_executeSql... Någon med andra idéer?

/BombusEk

Länk till kommentar
Dela på andra webbplatser

hmmm..

 

varför kan du inte använda sp_executeSql

SET @SSQL = 'SELECT * FROM ['+@DB'+].[dbo].[TABELL] WHERE [iD] = 1'

Det borde väl fungera.

 

Annars kan man väl använda USE om det gå med variabler vet jag ej.. massa if-satser kanske.

 

IF @DB = 'databas1' 
USE database1
ID @DB = 'databas2'
USE database2

SELECT * FROM [TABELL] WHERE [iD] = 1

 

Tycker Magnus som mest gissar hej vilt..

 

- Magnus

-----------------------------------------------------

ju mer jag lär mig ju mer inser jag så lite jag kan

 

Länk till kommentar
Dela på andra webbplatser

use blir svårt för jag ska hämta från en databas och uppdatera i en annan i samma sql-sats ;-)

Har lite problem med att fånga svaren från sp_executeSql. Typ som i den satsen jag skrev med EXISTS...

Hummma...

 

Länk till kommentar
Dela på andra webbplatser

Låter stuligt.

 

Här är en komplicerad väg runt problemet.

 

Skapa en DLL som gör det du vill och som tar olika inparmaterar. Denna DLL kan du sedan start innefrån din SP/Jobs eller vad du kör.

 

Ingen snygg lösningen men på rak arm kommer jag inte på någon annan.

 

- Magnus

-----------------------------------------------------

ju mer jag lär mig ju mer inser jag så lite jag kan

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...