2012-07-18 35 views
7

有人能告訴我如何使用T-SQL將文件內容讀入MS SQL變量嗎?如何將文件內容讀入SQL變量

+0

介紹一些關於你是什麼試圖做到完全。你想要讀什麼類型的內容以及什麼類型的變量?你的意思是使用tsql將平面文件的內容導入到表中? – vmvadivel 2012-07-18 10:59:52

+0

我想讀取* .sql文件並使用EXEC命令運行腳本。 – 2012-07-18 11:34:43

+0

您可能還想看看'sqlcmd'模式和[':r'開關](http://blogs.msdn.com/b/patrickgallucci/archive/2007/09/03/sqlcmd-and-the-這個小小的r.aspx功能)取決於你爲什麼需要這個。 – 2012-07-18 11:46:47

回答

16
DECLARE @FileContents VARCHAR(MAX) 

SELECT @FileContents=BulkColumn 
FROM OPENROWSET(BULK'PathToYourFile.sql',SINGLE_BLOB) x; 

SQL Server服務帳戶需要具有顯式讀取文件的權限。

+0

我試過了你的方法,它絕對有效!十分感謝你。 但是,我似乎沒有閱讀整個文件。它要麼沒有完全加載到變量中,要麼以二進制形式加載。如何以ASCII形式加載完整文本? – 2012-07-18 14:44:53

+0

@BabuJames - 在我看來,變量可能需要'nvarchar',所以也許嘗試。另外你怎麼確定它沒有完全加載? SSMS將截斷長變量的輸出。請參閱[如何從SSMS獲取完整結果集](http://stackoverflow.com/questions/8930034/how-to-get-the-full-resultset-from-ssms/8930141#8930141)。 – 2012-07-18 14:50:57

+0

您的所有建議確實能幫助我更深入地瞭解這個問題,即使它仍然沒有解決。場景是:我有大約10個相同數據庫的備份文件。定期我需要將它們與最新的模型更改同步。所以,現在我必須恢復每個文件,運行腳本並進行備份。因此,我想到了一些自動化,並想出了一個腳本的概念,它將逐一恢復並執行操作。其他一切都很好,但是在其上執行本地保存的.sql文件是有問題的。 – 2012-07-19 09:19:00

相關問題