2013-04-09 100 views
0

我已經使用sqlcmd從遠程服務器捕獲所需的數據,這很好。使用sqlcmd從遠程服務器捕獲數據並將excel文件放入其他服務器

我用下面的查詢在批處理文件 -

>>"Output_hvac.xls" echo %date% %time% 
>>"Output_hvac.xls" SQLCMD ... 

現在這個批處理文件保存在本地機器上,因此當它運行時產生_hvac excel文件的輸出。

我想這個excel文件存儲在一些沒有安裝sql server的其他服務器上。批處理必須在本地機器上運行,然後在服務器上更新excel表單。現在我可以訪問服務器,但如果我試圖用下面的查詢來做到這一點,它顯示訪問被拒絕。

>>"//172......./d$/Output_hvac.xls" echo %date% %time% 
    >>"Output_hvac.xls" SQLCMD ... 

現在我該怎麼做。

+0

我不明白你已經顯示的代碼片段。通常你使用'-o'選項執行'sqlcmd'來指定輸出路徑,但是我沒有看到類似的東西。什麼是精確的錯誤信息?如果是Windows錯誤5(「訪問被拒絕」),那麼問題在於您沒有權限寫入您想要的共享和/或文件夾。 – Pondlife 2013-04-09 15:38:02

回答

0

當您使用sqlcmd命令時,您需要正式連接到遠程服務器。

檢查出-S參數:

-S [協議:]服務器[\實例] [,端口]指定SQL Server的實例,其進行連接。它設置sqlcmd腳本變量SQLCMDSERVER。

指定server_name以連接到該服務器計算機上SQL Server的默認實例 。指定server_name [ instance_name]以連接到該服務器計算機上的SQL Server的命名實例。

如果未指定服務器計算機,sqlcmd會將 連接到本地計算機上SQL Server的默認實例。從網絡上的 遠程計算機執行sqlcmd時,需要此 選項。協議可以是tcp(TCP/IP),lpc(共享內存)或np (命名管道)。如果啓動sqlcmd時未指定server_name [\ instance_name] ,則SQL Server將檢查並使用SQLCMDSERVER環境變量。

關於msdn的全文。

+0

我沒有得到你想說的話。請更簡單一些。我已經使用-S「服務器名稱從遠程服務器獲取數據,這工作正常。我想通過批處理從遠程服務器獲取文件在本地機器上,並將該數據提供給另一臺服務器機器 – user1896796 2013-04-09 11:17:28

+0

您需要在有權訪問這些機器的用戶的上下文中執行批處理文件 – 2013-04-09 11:47:35

+0

我有權訪問該機器。但如果我嘗試當我的批處理文件在本地計算機上運行,​​並且服務器計算機上的Excel文件應該更新時,它會顯示訪問被拒絕。 – user1896796 2013-04-09 12:09:50

相關問題