Just nu i M3-nätverket
Jump to content

Dynamiska SQL-frågor


BombusEk

Recommended Posts

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

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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...

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...