openquery mit parameter (Anfaenger)

23/06/2008 - 16:07 von Fritz Huber | Report spam
Hallo Leute,

gibt es eine Möglichkeit Paramater in eine openqueryabfrage reinzugeben?

declare @Parameter
Set @Parameter = 'xxxxx'

select * from openquery(linkedserver,"select [" + @Parameter + "] from
Tabellenname where Datum <='20080601' AND Datum >= '20080501' ")


Warum die Abfrage zum linkedserver so aussehen muss, weiss ich leider nicht.
Ich weiß nur, das sie so unktioniert (where ist ungenau/vereinfacht):

select * from openquery(linkedserver,"select [xxxxx] from Tabellenname where
Datum <='20080601' AND Datum >= '20080501' "")

Ich möchte die Abfrage in einer stored procedure verwenden.
Habt Ihr Ideen oder sogar eine lösung ?


Danke
Fritz15
 

Lesen sie die antworten

#1 Elmar Boye
23/06/2008 - 16:42 | Warnen spam
Hallo Fritz,

Fritz Huber schrieb:
gibt es eine Möglichkeit Paramater in eine openqueryabfrage reinzugeben?



Nein. OPENQUERY erlaubt generell keine Parameter, nur eine Zeichenfolge:
<URL:http://msdn.microsoft.com/de-de/lib...7.aspx>

declare @Parameter
Set @Parameter = 'xxxxx'

select * from openquery(linkedserver,"select [" + @Parameter + "] from
Tabellenname where Datum <='20080601' AND Datum >= '20080501' ")



Deswegen mußt Du etwas verwenden wie
DECLARE @sql nvarchar(4000)

DECLARE @parameter nvarchar(100)
SET @parameter = 'Spalte'

SET @sql = N'SELECT * FROM OPENQUERY(linkedserver, '
+ '''SELECT ' + QUOTENAME(@parameter) + ' FROM Tabellenname '
+ 'WHERE Datum <= ''20080601'' AND Datum >= ''20080501'''
PRINT @sql

Gruß Elmar

Ähnliche fragen