Sto eseguendo una query SQL dinamica. dove i parametri vengono passati dinamicamente. Ho scritto per la prima volta in modo simile al seguente codice.Passa il parametro del valore Null alla query SQL dinamica. Come può essere eseguito con successo?
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)
Poi ho scritto questo.
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)
Questo codice volta eseguito con successo. Poiché il parametro può essere vuoto, è necessario convertirlo in null. Ho modificato il codice e scritto questo
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)
Nessun errore. La query si è interrotta.
Qualcuno ha questo tipo di problema?
[ricerca condizioni dinamiche in T-SQL] (http://www.sommarskog.se/dyn-search.html) da Erland Sommarskog sarebbe una buona leggi per te, penso. –
provare questo SET @ query = 'Seleziona * FROM [A06]. [Syn_RMDemand] DOVE RMHierarchyId =' '' + isnull (Convertire (VARCHAR, @id), '') + '''' EXEC (@ query) –
Grazie a @ArunprasanthKV .. che funziona. –