Meine Prozedur gibt nichts zurück, wenn where-Klauselbedingung als Parameter übergeben wird. Unten ist die Beispielabfrage und ich übergebe @strWhereClauseField
& @strWhereClauseValue
als Parameter. Es funktioniert gut, wenn ich meine Abfrage in Zeichenfolge konvertiere und es ausführe. Aber ich möchte keine Abfragezeichenfolge verwenden, da "Reihenfolge nach" in der Abfragezeichenfolge nicht funktioniert.Prozedur, die Nullzeilen zurückgibt, wenn where-Klausel als Parameter übergeben wird
DECLARE @Data TABLE
(
Id int identity(1,1), Product varchar(10)
)
INSERT @Data VALUES ('HP2030'), ('HP2031'), ('HP2032'), ('HP2033');
DECLARE @strWhereClauseField NVARCHAR(1000) = '1'
DECLARE @strWhereClauseValue NVARCHAR(1000) = '1'
SET @strWhereClauseField = '@Data.Product'
SET @strWhereClauseValue = '''HP2030'''
SELECT *
FROM @Data
WHERE @strWhereClauseField = @strWhereClauseValue
schätzen Sie Ihre Antwort, aber ich kann Abfrage Zeichenfolge nicht verwenden, da Reihenfolge von funktioniert nicht in Abfragezeichenfolge und meine ursprüngliche Abfrage wird aufgrund seiner Länge abgeschnitten. – user1891251
@ user1891251 'ORDER BY' funktioniert einwandfrei, wenn Sie es in die Zeichenfolge einschließen. Und genau wie lang ist Ihre Abfrage, dass es nicht in 'varchar (max)' passt? –
Die Länge ist 5000, kann aber basierend auf den Parametern variieren. – user1891251