Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用SSIS复制表';s结构和具有不同名称的数据_Sql_Sql Server_Ssis - Fatal编程技术网

Sql 使用SSIS复制表';s结构和具有不同名称的数据

Sql 使用SSIS复制表';s结构和具有不同名称的数据,sql,sql-server,ssis,Sql,Sql Server,Ssis,使用SSI和示例表myTable和Test\u myTable我想: 删除并创建表格表格Test\u myTable 用MyTable中的数据填充Test\u MyTable 是否有特定的任务可以做到这一点?我在查看Transfer SQL Server Objects Task Editor中的属性Expression Editor,认为在CopyAllObjects属性上放置一个表达式会起作用,但我不确定这是否是正确的路径。我想您可以利用它,只需执行以下操作任务中的语句 而不是删除并创建

使用SSI和示例表
myTable
Test\u myTable
我想:

  • 删除并创建表格表格
    Test\u myTable
  • MyTable
    中的数据填充
    Test\u MyTable

是否有特定的任务可以做到这一点?我在查看
Transfer SQL Server Objects Task Editor
中的属性
Expression Editor
,认为在
CopyAllObjects
属性上放置一个表达式会起作用,但我不确定这是否是正确的路径。

我想您可以利用它,只需执行以下操作任务中的语句

而不是删除并创建简单的截断表,因为删除表意味着您必须向用户授予权限,前提是您有某种限制,并且只有某些特定的用户可以访问数据

不掉落桌子

TRUNCATE TABLE Test_myTable;
GO

INSERT INTO Test_myTable (Col1, Col2, Col3, .....)
SELECT Col1, Col2, Col3, .....
FROM myTable
GO
删除表格并创建

TRUNCATE TABLE Test_myTable;
GO

INSERT INTO Test_myTable (Col1, Col2, Col3, .....)
SELECT Col1, Col2, Col3, .....
FROM myTable
GO
如果出于某种原因,您必须删除表并重新创建它,您可以在executesql任务中执行以下语句

--Drop tables if exists

IF OBJECT_ID('dbo.Test_myTable', 'U') IS NOT NULL
  DROP TABLE dbo.Test_myTable
GO

--Create and populate table
SELECT Col1, Col2, Col3, .....
INTO dbo.Test_myTable
FROM myTable
GO

是否可以动态生成此
执行SQL任务
?动态生成此任务是什么意思?您可以创建此任务并有条件地执行它,如果这是您动态创建此任务的意思。我的意思是,该任务将下拉生成表所需的SQL,而无需手动更改执行任务中的SQL。您可以使用表达式填充执行SQL任务的内容。在你最初的帖子中,你没有解释如何/为什么需要动态生成。正如这个答案暗示的那样,硬编码是我处理这个问题的方式。谢谢你的帮助!