У меня есть набор динамических запросов, которые возвращают XML как varchars, см. Ниже.SQL Server 2008: Null Return в динамическом XML-запросе
Пример запроса:
set @sqlstr = 'Select ''<?xml version="1.0" encoding="windows-1252" ?>'' + ''<File_Name><Location>'' + (Select a,b,c from table for xml path(''Row'')) + </Location></File_name>'''
exec(@sqlstr)
Это работает удовольствие, пока select a,b,c ...
запрос не является NULL. Тогда я не получаю внешние элементы, как и следовало ожидать, как:
<?xml version="1.0" encoding="windows-1252"><File_Name><Location><Row></Row></Location></File_name>
Все я получаю это NULL
После немного погуглить я считаю, этот вопрос является конкатенация NULL результатов является полным NULL Результат. Однако я не могу найти одно решение, дающее мне то, что я ожидаю получить.
Я пробовал (не сказать, что я пытался правильно)
IsNull(Exec(@sqlstring),'*blank elements*')
xsnil (doesn't seem to work in dynamic queries)
@result = exec(@sqlstring) then isnull and select
Кто-нибудь есть лучшее решение? (Предпочтительно малы из-за несколько таких запросы)
Это моя ошибки, я сделал, б, для примера его на самом деле *, как свы в некоторых случаях 20 поля. ваш ответ будет работать, и если нет более короткого метода, а затем перечислить каждый из них, я приму в качестве ответа спасибо –
Если есть более короткий путь, дайте мне знать, чтобы я тоже мог узнать @LRiley –
Будет ли я ' Сообщение о том, что я нахожу –