2013-08-20 82 views
2

我使用下面的腳本在SQL Server 2005中創建一個XML輸出SQL Server 2005中FOR XML限制

select 
    mst.Reference "Reference", 
    convert(varchar(10), mst.CreatedOn, 121) "Date_Created", 
    convert(varchar(10), mst.DueOn, 121) "Date_Due", 
    isnull(mst.Amount1, 0.00) "Amt_1", 
    isnull(mst.Tax1, 0.00) "Tax_1", 
    isnull(mst.Item_Count, 0.00) "No_Of_Items", 
    isnull(mst.Amount2, 0.00) "Amt_2", 
    isnull(mst.Tax2, 0.00) "Tax_2", 
    isnull(mst.Total, 0.00) "Total", 
    isnull(mst.Note, '') "Notes", 
    (select 
     det.Reference "Reference", 
     det.Itm_Num "Order", 
     isnull(det.Description, '') "Description", 
     det.Code "Code", 
     isnull(det.Amount1, 0.00) "Amt_1", 
     isnull(det.Tax1, 0.00) "Tax_1", 
     isnull(det.Amount2, 0.00) "Amt_2", 
     isnull(det.Tax2, 0.00) "Tax_2", 
     isnull(det.Note, '') "Notes" 
    from tblDetail det 
    where det.Mst_Reference = mst.Reference 
    order by det.Itm_num 
    for xml path ('item'), type) 
from tblMaster mst 
for xml path ('master'), root('root'), type 

然而,這將返回我一個空白的XML沒有任何錯誤,但如果我改變它只是取它創建的主記錄中有4條記錄,並返回xml。 xml創建的記錄數是否有限制?

感謝

+0

怎麼樣你申請四個記錄限制? –

+1

您的表格中有多少條記錄?你如何檢查xml是否爲空? –

+0

我只是嘗試了試驗和錯誤,發現它返回了4條記錄......但我認爲該值可以增加減少的基礎上的deail表中的記錄... –

回答

3

我知道你在超過數據SSMS的大小被允許顯示的感覺。 嘗試在SSMS調整大小位置:

工具 - >選項 - >查詢結果 - > SQL Srver - >結果到網格 - > XML數據

變化2MB更大的東西

+0

我已經檢查並將其設置爲2GB ... –

+0

您正在運行SSMS的哪個版本?我只看到1MB,2MB,5MB或「無限」作爲唯一選項。 – etliens

+0

運行DATALENGTH()在您的查詢返回什麼? 例如: 選擇 DATALENGTH ( ( 選擇 * FROM FOR XML AUTO,TYPE ) ); – etliens