[英]append output of multiple sql statements into one file
我有500個表格的數據庫。
在選擇數據庫中每個表的前3行之后 ,我可以獲得每個表的前3行,但輸出為500個表。
是否可以將這些結果寫入單個csv / tab或| 分隔的文本文檔。
我想要
col1 col2 col3
... ... ...
... ... ...
... ... ...
col1 col2 col3 col4 col5
... ... ... ... ...
在最終文件中。
我正在使用MS SQL Server Management Studio
此解決方案有兩件事。
認為這會有所幫助。 我已經在數據庫上對其進行了測試,然后一切都變得正常了。
DROP TABLE IF EXISTS ##Temp
CREATE TABLE ##Temp
(
Col varchar(max)
)
Declare @sql varchar(max) = ''
Select @sql=@sql+'INSERT ##Temp SELECT TOP 3 ' + colnames + ' FROM [' + SCHEMA_NAME(schema_id) + '].['+name+']'+';'
from
(
select a.object_id, a.name, a.schema_id, STUFF((SELECT '+'',''+Convert(varchar(max), ' + QUOTENAME(a.name) + ')'
FROM
(Select * from sys.columns c where object_id = a.object_id) a
ORDER BY a.column_id
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,5,'') colnames
FROM sys.tables a
) a
exec (@sql)
delete #Temp where Col is null
declare @TempFileName varchar(255) = 'C:\Temp\Youfile.csv'
Select @Command = 'bcp "Select * from ##Temp" queryout "' + @TempFileName + '" -S' + @@ServerName + ' -T -c -q'
exec xp_cmdshell @Command, NO_OUTPUT
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.