我有一个名为foo的数据库和一个名为bar的数据库。我有一个表在foo叫tblFoobar,我想移动(数据和所有)数据库酒吧从数据库foo。执行此操作的SQL语句是什么?
当前回答
我给你三个选择:
如果是同一个实例上的两个数据库:
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');
其他回答
这应该可以工作:
SELECT *
INTO DestinationDB..MyDestinationTable
FROM SourceDB..MySourceTable
它不会复制约束、默认值或索引。创建的表将没有聚集索引。
或者你可以:
INSERT INTO DestinationDB..MyDestinationTable
SELECT * FROM SourceDB..MySourceTable
如果目标表存在且为空。
如果只有一张桌子,那么你所需要做的就是
脚本表定义 在另一个数据库中创建新表 更新规则、索引、权限等 导入数据(上面已经显示了几个插入示例)
您必须考虑的一件事是其他更新,例如将来迁移其他对象。注意,源表和目标表没有相同的名称。这意味着如果你依赖视图、存储过程和其他对象,你也必须做出改变。
对于一个或几个对象,你可以手动去w/o任何问题。然而,当有超过几个更新时,第三方比较工具就非常方便了。现在我正在使用ApexSQL Diff进行模式迁移,但是使用其他工具也不会出错。
在management studio中编写创建表的脚本,在bar中运行该脚本创建表。(在对象资源管理器中右键单击表,脚本表as,创建到…) 插入杆。(模式)。表SELECT * FROM foo.[schema].table
你可以这样做:(一个一般的例子)
insert into QualityAssuranceDB.dbo.Customers (columnA, ColumnB)
Select columnA, columnB from DeveloperDB.dbo.Customers
此外,如果你需要生成列名,以及插入子句,使用:
select (name + ',') as TableColumns from sys.columns
where object_id = object_id('YourTableName')
复制结果并粘贴到查询窗口中,以表示您的表列名,即使这样也会排除身份列:
select (name + ',') as TableColumns from sys.columns
where object_id = object_id('YourTableName') and is_identity = 0
记住,如果数据库属于相同的位置,复制行的脚本将工作。
你可以试试这个。
select * into <Destination_table> from <Servername>.<DatabaseName>.dbo.<sourceTable>
如果两个DB在同一服务器上,则“服务器名称”为可选参数。
我给你三个选择:
如果是同一个实例上的两个数据库:
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');
推荐文章
- 如何在Ruby On Rails中使用NuoDB手动执行SQL命令
- 查询JSON类型内的数组元素
- 确定记录是否存在的最快方法
- 获得PostgreSQL数据库中当前连接数的正确查询
- 在SQL选择语句Order By 1的目的是什么?
- MySQL数据库表中的最大记录数
- 从现有模式生成表关系图(SQL Server)
- 我如何循环通过一组记录在SQL Server?
- 如何复制在bash所有目录和文件递归?
- 数据库和模式的区别
- 如何在SQL Server中一次更改多个列
- 如何从命令行通过mysql运行一个查询?
- 外键约束可能导致循环或多条级联路径?
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N