Przeprowadzam dynamiczne zapytanie SQL. gdzie parametry są przekazywane dynamicznie. Najpierw napisałem podobnie do następującego kodu.Przekazywanie parametru wartości Null do dynamicznego zapytania SQL. Jak można to z powodzeniem wykonać?
DECLARE @Id nvarchar(max);
DECLARE @query nvarchar(max);
SET @Id ='RMH_108'
SET @query ='Select *
FROM [A06].[Syn_RMDemand]
WHERE RMHierarchyId =' + @Id
PRINT @query
EXEC(@query)
Wtedy to pisałem.
DECLARE @Id nvarchar(max);
DECLARE @query nvarchar(max);
SET @Id ='RMH_108'
SET @query ='Select *
FROM [A06].[Syn_RMDemand]
WHERE RMHierarchyId = '''[email protected]+''''
PRINT @query
EXEC(@query)
Kod ten czas pomyślnie wykonana. Ponieważ parametr może być pusty, muszę przekonwertować go na wartość null. I zmodyfikowany kod i napisał ten
DECLARE @Id nvarchar(max);
DECLARE @query nvarchar(max);
SET @Id = ''
SET @Id = NULLIF(@Id,'')
-- COMMENTED SET @Id ='RMH_108'
SET @query ='Select * FROM [A06].[Syn_RMDemand]
WHERE RMHierarchyId = '''[email protected]+''''
PRINT @query
EXEC(@query)
bez błędów. Zapytanie się zawiesiło.
Czy ktoś ma taki problem?
[Dynamic warunków wyszukiwania w T-SQL] (http://www.sommarskog.se/dyn-search.html) Erland Sommarskog byłby dobry czytam dla ciebie, jak sądzę. –
wypróbować ten zestaw @query = 'Select * z [A06]. [Syn_RMDemand] GDZIE RMHierarchyId =' '' + IsNull (Konwersja (VARCHAR, @id), '') + ''” ' EXEC (@ zapytanie) –
Dzięki @ArunprasanthKV .. to działa. –