0
A
回答
2
您無法直接使用存儲過程。我建議在SQL Server Management Studio中右鍵單擊數據庫,然後選擇「導出數據」。
爲它提供一個查詢或返回行的存儲過程。告訴它你希望文件由逗號和用引號限定的文本分隔。
當嚮導詢問您是要執行還是保存時,請將其保存到磁盤。
這使得所謂的SSIS包。然後,您可以使用Windows資源管理器來運行它,或者使用名爲dtexec.exe的命令行程序來運行它,或者將它提供給DBA,讓它們在SQL Server中運行它。
1
您可以通過exec調用BCP的xp_cmdshell 'BCP dbname..table出filename.bcp .....'
這是一個非常類似的問題,除了它的進口。 Use bcp to import csv file to sql 2005 or 2008
+0
我需要導出數據,而不是導入數據 – user146911 2010-06-02 02:03:11
1
這是可能做到,但你需要有足夠的權利來運行xp_cmdshell和即席分佈式查詢。
sp_configure 'Show Advanced Options', 1
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO
sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO
DECLARE @OutputPath VARCHAR(1000)
SET @OutputPath = 'd:\temp\'
DECLARE @OutputFilename VARCHAR(1000)
DECLARE @ServerName VARCHAR(1000)
SET @ServerName='servername'
DECLARE @Username VARCHAR(50)
SET @Username = 'username'
DECLARE @Password VARCHAR(50)
SET @Password = 'password'
DECLARE @DatabaseName VARCHAR(50)
SET @DatabaseName = 'databasename'
DECLARE @Dsn VARCHAR(1000)
SET @Dsn = 'Server='[email protected]+';Database='[email protected]+';Uid='[email protected]+';Pwd='[email protected]+';'
DECLARE @StartProcedureTime DATETIME
DECLARE @EndProcedureTime DATETIME
DECLARE @TimeTaken INTEGER
DECLARE @QueryToRun VARCHAR(1000)
DECLARE @Query VARCHAR(1000)
DECLARE @result INT
SET @Query = 'mkdir "' + @OutputPath + @DatabaseName +'\"'
EXEC @result = [master]..xp_cmdshell @Query
DECLARE db_cursor CURSOR FOR
SELECT
T.[FileName] + '.csv' AS [FileName],
REPLACE(T.SqlToRun, '''', '''''') AS [SqlToRun]
FROM
(
SELECT 'sp_DataGenerator_AverageRatingAverage' AS [FileName], 'exec sp_DataGenerator_AverageRatingAverage 54' AS [SqlToRun]
UNION ALL
SELECT 'sp_DataGenerator_AverageRatingGood', 'exec sp_DataGenerator_AverageRatingGood ''01-01-2009'', ''01-01-2010'''
UNION ALL
SELECT 'sp_DataGenerator_AverageRatingBad', 'exec sp_DataGenerator_AverageRatingBad ''01-01-2009'', ''01-01-2010'''
) AS T
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @OutputFilename, @QueryToRun
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Query = 'bcp "SELECT * FROM OPENROWSET (''SQLOLEDB'','''[email protected]+''','''[email protected]+''') AS T" queryout '[email protected] + @DatabaseName + '\' + @OutputFilename +' -c -t, -r\n -U'[email protected]+' -P'[email protected]+' -S'[email protected] + ' > ' [email protected] + @DatabaseName + '\' + @OutputFilename +'.txt'
SET @StartProcedureTime = getdate() --take start time
EXEC @result = [master]..xp_cmdshell @Query
SET @EndProcedureTime = getdate() --take end time
SET @TimeTaken = DATEDIFF(millisecond, @StartProcedureTime, @EndProcedureTime) --take difference in milliseconds.
PRINT '"'[email protected] + '" took ' + str(@TimeTaken) + ' Milliseconds.'
FETCH NEXT FROM db_cursor INTO @OutputFilename, @QueryToRun
END
CLOSE db_cursor
DEALLOCATE db_cursor
go
sp_configure 'xp_cmdshell', 0
GO
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 0
GO
RECONFIGURE
GO
sp_configure 'Show Advanced Options', 0
GO
RECONFIGURE
GO
相關問題
- 1. SQL Server 2008導入/導出數據
- 2. SQL Server 2008 Express SSRS:導出爲CSV
- 3. 從SQL Server 2008數據庫使用c導出excel表格
- 4. 是否可以從gml2格式導出Sql Server 2008的空間數據?
- 5. 如何導出SQL Server 2008數據庫?
- 6. 導出SQL Server 2008 R2數據庫
- 7. 將SQL Server數據導出爲CSV
- 8. 數據導入SQL Server 2008
- 9. 使用SQL Server 2008將所有數據庫數據導出爲xml格式
- 10. 如何將數據庫從SQL Server 2008導出到SQL Server 2005
- 11. 爲SQL Server 2008免費模式導出?
- 12. 數據導出爲CSV格式
- 13. SQL Server 2008中的CSV導入
- 14. 以CSV格式導出數據庫是否保留其模式?
- 15. 根據過濾情況以csv格式導出數據
- 16. 從sql server中的表導出數據以訪問?
- 17. SQL Server Management Studio 2012 - 從表格中導出/導入數據
- 18. 格式SYSDATETIMEOFFSET在SQL Server 2008
- 19. 在SQL Server 2008中導入XML數據
- 20. SQL Server 2008數據庫發佈嚮導
- 21. 使用PHP導出帶有標題的SQL Server表格爲CSV
- 22. 獲取數據網格中的所有數據並以CSV格式導出
- 23. 春季3 - 以csv格式導出數據
- 24. SQL Server:導入和導出CSV
- 25. 如何以編程方式將數據從數據庫導出爲.csv格式?
- 26. SQL CSV導入/導出發佈數據
- 27. 以特定格式導出到csv
- 28. 以指定格式導出到csv
- 29. 將數據庫從SQL Server 2008 R2實例導出到SQL Express 2008
- 30. python csv - 導出數據和格式顏色,文本格式等
它是否必須是存儲過程? – Randy 2010-06-02 01:44:53