Hallo,
STFW und die Suche hier im Forum hat mich leider noch nicht weitergebracht.
Ich habe eine Stored Procedure geschrieben um eine dynamische SQL Abfrage zu bekommen. Dabei habe ich mich an den Artikel von Erland Sommarskog hier gehalten.
Dabei ist diese Procedure herausgekommen:
Wenn ich die Procedure mit:
aufrufe, bekomme ich alle Datensätze zurück. Nur der Aufruf mit dem Parameter geling nicht. Ich habe es so:
mit diesem Ergebnis:
Alle Kombinationen aus Kommas, Anführungszeichen und dem Parameter führen zu keinem Ergebnis.
Was mache ich falsch? Wie muss der korrekte Aufruf lauten?
Besten Dank
BorisHendrik
STFW und die Suche hier im Forum hat mich leider noch nicht weitergebracht.
Ich habe eine Stored Procedure geschrieben um eine dynamische SQL Abfrage zu bekommen. Dabei habe ich mich an den Artikel von Erland Sommarskog hier gehalten.
Dabei ist diese Procedure herausgekommen:
Code:
CREATE PROCEDURE AskForListOfNpis @IdStatus int = NULL, @debug bit = 0 AS Declare @sql nvarchar(4000), @paramlist nvarchar(4000) SELECT @sql = 'SELECT t1.IdProject, t2.ProjectType, t3.Status, t1.Name, t1.DateIntendedSignOff, t1.DateEnd, v1.ApprPo, v1.ApprProd, v1.ApprIrc, v1.ApprCaa, v1.ApprFm, v1.ApprDo FROM dbo.tblMain AS t1 INNER JOIN dbo.tblProjectType AS t2 ON t1.IdProjectType = t2.IdProjectType INNER JOIN dbo.tblStatus AS t3 ON t1.IdStatus = t3.IdStatus INNER JOIN dbo.viewApproval AS v1 ON t1.IdProject = v1.IdProject WHERE 1 = 1' If @idStatus IS NOT NULL SELECT @sql = @sql + ' AND t1.IdStatus = @IdStatus' SELECT @sql = @sql + ' ORDER BY t1.IdProject' IF @debug = 1 Print @sql SELECT @paramlist = '@IdStatus int' EXEC sp_executesql @sql, @paramlist, @IdStatus
Code:
EXECUTE AskForListOfNpis
Code:
EXECUTE AskForListOfNpis '',1
Code:
SELECT t1.IdProject, t2.ProjectType, t3.Status, t1.Name, t1.DateIntendedSignOff, t1.DateEnd, v1.ApprPo, v1.ApprProd, v1.ApprIrc, v1.ApprCaa, v1.ApprFm, v1.ApprDo FROM dbo.tblMain AS t1 INNER JOIN dbo.tblProjectType AS t2 ON t1.IdProjectType = t2.IdProjectType INNER JOIN dbo.tblStatus AS t3 ON t1.IdStatus = t3.IdStatus INNER JOIN dbo.viewApproval AS v1 ON t1.IdProject = v1.IdProject WHERE 1 = 1 AND t1.IdStatus = @IdStatus ORDER BY t1.IdProject Meldung 137, Ebene 15, Status 2, Zeile 7 Die '@IdStatus'-Skalarvariable muss deklariert werden.
Was mache ich falsch? Wie muss der korrekte Aufruf lauten?
Besten Dank
BorisHendrik
Comment