我有一个本地sql server,免费版本,用于测试目的,并希望从生产服务器自动导入数据。 我是从SSMS手动完成的 - 右键单击数据库 - 任务 - 导出数据... ,我只选择特定的表,但每天做几次是不行的。
由于生产数据库大于免费版本允许,我不能简单地备份整个数据库并加载。 我也不能让我的本地服务器成为一个"链接"随着制作,所以简单
insert [server].[db].[schema].[table]
from [server].[db].[schema].[table]
也不会工作。
我无法在某些表(bcp
)上执行Error = [Microsoft][SQL Server Native Client 11.0]Invalid character value for cast specification
命令而没有错误:
bcp "select * from MyDB.dbo.Table where ID = 12345" QUERYOUT export.csv -w -t ; -k -T -S PRODSRV
bcp MyDB.dbo.Table format nul -T -E -w -t ; -f format.fmt -S PRODSRV
bcp MyLocalDB.dbo.Table IN export.csv -k -T -S (localdb)\MSSQLLocalDB -f format.fmt
谢谢
答案 0 :(得分:0)
@Myro,您可以使用SQL OpenRowSet命令连接到高效实例,并使用SELECT和INSERT命令从生产数据库表导入数据,如下所示
create table MyDBList ( dbname sysname)
GO
Insert into MyDBList (dbname)
SELECT rdb.name
FROM OPENROWSET('SQLNCLI', 'Server=kodyaz\sql2017;Trusted_Connection=yes;',
'SELECT name FROM sys.databases') AS rdb
GO
这非常类似于使用链接服务器,但在这种情况下您不需要创建数据库对象。
如果您的SQL Server配置不是allow Ad Hoc Distributed Queries,请尝试通过执行以下sp_configure命令来设置所需的配置
sp_configure 'show advanced options', 1
reconfigure
sp_configure 'Ad Hoc Distributed Queries', 1
reconfigure
sp_configure 'show advanced options', 0
reconfigure