在SQL Server 2008的同一数据库中制作表的副本,然后更新内容

时间:2014-03-26 14:53:03

标签: sql sql-server database sql-server-2008 windows-7

我想在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无法看到本地驱动器。

任何帮助将不胜感激。

1 个答案:

答案 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