Wednesday, October 12, 2011

вдруг пригодится: sql для крутых

добавив одну строчку в самом конце sql запроса, вы можете получить результат в виде xml, а не в виде обычной таблицы:
For XML Auto, Type, Elements, Root('Whatever_you_want')




вдруг пригодится...

ну, а под катом - уж для совсем крутых...



для начала в cmd:
bcp
если показывается хелп - значит утилита будет работать.

теперь вводим:
bcp "Select TitlePropertyID, TitleID, DomainTypeID, PropertyName, ValueTypeID, ValueStr FROM AssetLibrary_Prod.dbo.ALTitleProperty where titleid = 9013 for xml auto, type, elements, root('R')" queryout "c:\BCP.xml" -c -t -U achernik -P ach$rnik -S LA1QVSQLSVR001


разбор:
1. bcp - это утилита

2. это сиквел запрос, который мы уже посылали из студии:
"Select TitlePropertyID, TitleID, DomainTypeID, PropertyName, ValueTypeID, ValueStr FROM AssetLibrary_Prod.dbo.ALTitleProperty where titleid = 9013 for xml auto, type, elements, root('R')"

3. куда положить xml файл:
queryout "c:\BCP.xml"

4. еще кое-какие параметры:
-c -t

5. логин\пароль
-U achernik
-P ach$rnik

6. сервер:
-S LA1QVSQLSVR001

В итоге получаем ответ из базы в виде хорошо отформатированного xml файла.

апдейт: ссылки на мсдн:
FOR XML
BCP utility

2 comments:

barklay999 said...

Sanych, a ssylkami ne pobaluesh?

archie said...

выложил.
кстати - из BCP можно посылать запрос без логина\пароля, тогда он будет логиниться виндовским экаунтом (если ты к базам по нему подключаешься.)