Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 server 2008 用Access数据库表填充现有SQL Server数据库表_Sql Server 2008_Ms Access_Ms Access 2007 - Fatal编程技术网

Sql server 2008 用Access数据库表填充现有SQL Server数据库表

Sql server 2008 用Access数据库表填充现有SQL Server数据库表,sql-server-2008,ms-access,ms-access-2007,Sql Server 2008,Ms Access,Ms Access 2007,我在SQLServer2008数据库中有一个空表,我想将access数据库中的表中的数据边缘化到SQLServer2008数据库中。需要引入1000行。问题是SQL Server数据库表中还有Access数据库表中不存在的其他列 这里我只提到一个表,但大约有15个表需要从access db表更新。这样做的最佳间隔是什么 提前感谢您在Access数据库中创建指向SQL Server表的ODBC链接。然后对每对表(Access和SQL Server)执行Access调用的追加查询 INSERT IN

我在SQLServer2008数据库中有一个空表,我想将access数据库中的表中的数据边缘化到SQLServer2008数据库中。需要引入1000行。问题是SQL Server数据库表中还有Access数据库表中不存在的其他列

这里我只提到一个表,但大约有15个表需要从access db表更新。这样做的最佳间隔是什么


提前感谢您在Access数据库中创建指向SQL Server表的ODBC链接。然后对每对表(Access和SQL Server)执行Access调用的追加查询

INSERT INTO remote_table1 (field1, field2, field3, etc)
SELECT field1, field2, field3, etc
FROM access_table1;

如果字段名匹配并且数据类型兼容,那么这应该相当简单。如果您的SQL Server字段的名称与其访问对应字段的名称不同,则需要进行更多的工作。如果数据类型不直接兼容,则可以使用查询中的字段表达式转换值。您可以在Access查询中使用许多数据类型转换函数:
CDate()
<代码>CStr()<代码>CInt()<代码>CLng();等等。

在Access数据库中,您可以创建指向SQL Server表的ODBC链接。然后对每对表(Access和SQL Server)执行Access调用的追加查询

INSERT INTO remote_table1 (field1, field2, field3, etc)
SELECT field1, field2, field3, etc
FROM access_table1;

如果字段名匹配并且数据类型兼容,那么这应该相当简单。如果您的SQL Server字段的名称与其访问对应字段的名称不同,则需要进行更多的工作。如果数据类型不直接兼容,则可以使用查询中的字段表达式转换值。您可以在Access查询中使用许多数据类型转换函数:
CDate()
<代码>CStr()<代码>CInt()<代码>CLng();等等。

视情况而定。对于Access表中不存在的SQL Server字段,它们是否接受空值?如果没有,它们是否定义了默认值?这是您必须只执行一次的操作,还是一次重复操作?@HansUp这是一次操作。是的,他们可以有空视情况而定。对于Access表中不存在的SQL Server字段,它们是否接受空值?如果没有,它们是否定义了默认值?这是您必须只执行一次的操作,还是一次重复操作?@HansUp这是一次操作。是的,它们可以为记录设置空值,您当然也可以通过另一种方式设置链接:让SQL链接访问,并在SQL运行
INSERT中。。。来自AccDB.DBName.dbo.TblName
。我不知道哪一个更容易设置,哪一个在类型转换等方面更宽容,但如果访问SQL最终成为一件痛苦的事,请尝试另一种方式。作为记录,您当然也可以用另一种方式设置链接:让SQL链接访问,并在SQL run
INSERT中。。。来自AccDB.DBName.dbo.TblName
。我不知道哪一个更容易设置,哪一个在类型转换等方面更宽容,但是如果访问SQL最终成为一件痛苦的事,那么试试另一种方法。