我有一个名为foo的数据库和一个名为bar的数据库。我有一个表在foo叫tblFoobar,我想移动(数据和所有)数据库酒吧从数据库foo。执行此操作的SQL语句是什么?
当前回答
在management studio中编写创建表的脚本,在bar中运行该脚本创建表。(在对象资源管理器中右键单击表,脚本表as,创建到…) 插入杆。(模式)。表SELECT * FROM foo.[schema].table
其他回答
我给你三个选择:
如果是同一个实例上的两个数据库:
SELECT * INTO My_New_Table FROM [HumanResources].[Department];
如果它们是不同服务器上的两个数据库,并且你有链接服务器,那么:
SELECT * INTO My_New_Table FROM [ServerName].[AdventureWorks2012].[HumanResources].[Department];
如果它们是不同服务器上的两个数据库,并且你没有链接服务器,那么:
SELECT * INTO My_New_Table
FROM OPENROWSET('SQLNCLI', 'Server=My_Remote_Server;Trusted_Connection=yes;',
'SELECT * FROM AdventureWorks2012.HumanResources.Department');
SQL Server Management Studio的“Import Data”任务(右键单击DB名称,然后单击tasks)将为您完成大部分工作。在要将数据复制到的数据库中运行它。
如果表不存在,它将为您创建它们,但您可能必须重新创建索引等。如果表确实存在,它将默认添加新数据,但您可以调整(编辑映射),这样它将删除所有现有数据。
我一直在用这个,而且效果很好。
在SQL Server上?在同一个数据库服务器上?使用三部分命名。
INSERT INTO bar..tblFoobar( *fieldlist* )
SELECT *fieldlist* FROM foo..tblFoobar
这只是移动数据。如果希望移动表定义(以及权限和索引等其他属性),则必须执行其他操作。
在management studio中编写创建表的脚本,在bar中运行该脚本创建表。(在对象资源管理器中右键单击表,脚本表as,创建到…) 插入杆。(模式)。表SELECT * FROM foo.[schema].table
如果只有一张桌子,那么你所需要做的就是
脚本表定义 在另一个数据库中创建新表 更新规则、索引、权限等 导入数据(上面已经显示了几个插入示例)
您必须考虑的一件事是其他更新,例如将来迁移其他对象。注意,源表和目标表没有相同的名称。这意味着如果你依赖视图、存储过程和其他对象,你也必须做出改变。
对于一个或几个对象,你可以手动去w/o任何问题。然而,当有超过几个更新时,第三方比较工具就非常方便了。现在我正在使用ApexSQL Diff进行模式迁移,但是使用其他工具也不会出错。
推荐文章
- GROUP BY with MAX(DATE)
- 删除id与其他表不匹配的sql行
- 等价的限制和偏移SQL Server?
- 如何从SQL Server中的字符串中剥离所有非字母字符?
- 为什么我不能在DELETE语句中使用别名?
- 在SQL Server Management Studio中保存带有标题的结果
- "where 1=1"语句
- 如何选择一个记录和更新它,与一个单一的查询集在Django?
- 多语句表值函数vs内联表值函数
- 如何从Oracle的表中获取列名?
- NOLOCK提示在SELECT语句中的作用
- SQL OVER()子句-它什么时候有用,为什么有用?
- 如果字段在MySQL中为空,则返回0
- 检查SQL Server登录是否已经存在
- 我如何使用ROW_NUMBER()?