Was ist falsch an meinem Code? Ich möchte die Select-Anweisung und die Where-Klausel Variablenwerte übergeben:Wie Übergeben der SELECT-Anweisung als Parameter an gespeicherte Prozedur in SQL Server?
ALTER PROC sp_ac_getItemLookupCode
@itemlookupcode varchar(20) = null,
@select varchar(30)
AS
BEGIN
SELECT DISTINCTT
@select
FROM
[ReportHQMatajer].[dbo].[JFC_ItemDailySalesParent] pp
WHERE
ItemLookupCode LIKE @itemlookupcode+'%'
END
Oben ist meine gespeicherte Prozedur. Ich führen Sie den folgenden Code, aber es gibt die Spalte Name
nur
sp_ac_getItemLookupCode @select='ItemLookupCode',@itemlookupcode=1
Es ist nicht alle Werte zurück. Es gibt den Spaltennamen als Ergebnis
Forschung "dynamische SQL" –
Randnotiz: Sie sollten ** nicht ** das Präfix 'sp_' für Ihre gespeicherten Prozeduren verwenden. Microsoft hat [dieses Präfix für seine eigene Verwendung reserviert (siehe * Gespeicherte Prozeduren benennen *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx), und Sie riskieren irgendwann in der Zukunft einen Namenskonflikt. [Es ist auch schlecht für die Leistung Ihrer gespeicherten Prozedur] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Es ist am besten, einfach 'sp_' zu vermeiden und etwas anderes als Präfix zu verwenden - oder gar kein Präfix! –