我想在SQL Server 2008的同一数据库中制作一个表的副本。
然后,用另一个txt文件替换新表的内容。 txt文件与新表具有相同的列标题。
我知道如何手动创建新表。
但是,txt文件非常大,我想通过脚本来完成。
更新
我创建了一个具有相同标题的新表,但是如何将.txt文件中的数据加载到表中?
当我使用批量插入时:
BULK INSERT [dbo].[my_new_table]
FROM '\\ServerName\myPath\myFile.csv'
我收到了错误:
无法批量加载,因为无法打开文件“\ ServerName \ myPath \ myFile.csv”。
操作系统错误代码3(系统找不到指定的路径。)
我已将文件复制到本地C:
,但同样的错误。
现在,UNC路径不起作用。 SQL Server无法看到本地驱动器。
任何帮助将不胜感激。
答案 0 :(得分:2)
这是创建新表的快捷方法:
SELECT TOP 0 *
INTO [NewTableName]
FROM [OldTableName];
请注意,这仅涵盖列名称和类型,并忽略触发器,索引,约束等功能。如果需要这些附加项,可以通过右键单击原始表并选择{来自Management Studio来执行此操作。 {1}} - > Script Table As
- > Create to
。在创建的查询窗口中,只需更改表名并运行查询。
对于导入文本数据,没有太多未提供的回复,但BULK INSERT语句可能值得研究。
查看您的编辑,运行sql server服务的帐户需要有权访问该文件共享。如果您首先在本地复制文件,并且使用xml格式文件告诉sql server关于文本文件中的字段,那么您将获得最好的运气。请务必阅读并理解docs。