如何将表格导出到文本文件?
我需要获取现有表的 INSERT 脚本(结构和数据)。
在 SQL2k 中,尝试阅读有关批量复制的信息,我认为命令应该是bcp
MS帮助文件中的示例类似于...
将数据从表导出到文本文件
bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout Authors.txt -c -Sservername -Usa -Ppassword
将数据从文本文件导入表:
将数据从 Newpubs.dat 批量复制到 publishers2 的命令是:
bcp pubs..publishers2 in newpubs.dat -c -t , -r \n -Sservername -Usa -Ppassword
或者,您可以使用查询工具(例如 SQL 查询分析器)中的 BULK INSERT 语句来批量复制数据:
BULK INSERT pubs..publishers2 FROM 'c:\newpubs.dat'
WITH (
DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
加思
在 SQL Server 2005 Management Studio 中,您可以使用导入/导出向导(不确定您是否特别需要脚本,或者只是一种将结构/数据导出到文件的方法,但此建议无需实际脚本即可完成) :
在 Save and Execute Package 屏幕上,您可以选择 Execute Immediately,或者如果您想将生成的“脚本”保存为 SSIS 包,您也可以选择该选项。单击下一步,然后单击完成,执行导出
您生成的文件将包含表格的内容。如果您随后需要将此数据“插入”到不同的数据库中,您可以使用向导的“导入数据”选项将数据从文本文件导入到其他数据库/表中。
您可以通过从 information_schema 中获取列信息以编程方式构建INSERT语句,其中每行数据描述一列:
SELECT table_name,
ordinal_position,
column_name,
data_type,
is_nullable,
character_maximum_length
FROM information_schema.columns
WHERE table_name LIKE '%TableName%'
ORDER BY ordinal_position
对于导出数据,BCP 是工具,BOL 有几个不错的例子:
bcp AdventureWorks.Sales.Currency out Currency.dat -T -c