从SQL Server 2014导出数据库表到SQL Server 2008 R2

3
我们已将公司数据库从SQL Server 2008 R2升级到SQL Server 2014。自那时起,我们不能再将数据(3个表)导出到使用SQL Server 2008 R2的网店中。
我们收到以下错误信息:
0xc002f210,SQL任务准备,“CREATE TABLE [dbo] [XXXXX]([XXXXX_ID] int NOT...”:“第29行:长度或精度规范为0是无效的......”
是否有办法仍然可以在SQL Server 2014中使用导出功能,或者我们必须将我们的网店数据库也升级到SQL Server 2014?还有其他方法可以导出我们的表格吗?
编辑: 我正在尝试使用从SQL Server 2014导入数据功能将3个表从SQL Server 2014导入到2008 R2。 我不会自己写任何SQL语句。 连接到公司旧SQL服务器上的同一数据库并从那里运行导入起作用。 SQL Server 2008 R2不喜欢导入2014年的表格....完整的错误信息:
错误0xc002f210:1个SQL任务“准备工作”:无法执行查询“CREATE TABLE [dbo] [ARKALK]([ARKALK_ID] int NOT ... ”:'第29行:长度或精度规范为0无效。'可能的原因是:查询问题,ResultSet属性未正确固定,参数未正确确定或连接未正确建立。”

这可能会有所帮助:https://dev59.com/9WMm5IYBdhLWcg3wRdQz - Takarii
那个错误信息不是关于兼容性的。它抱怨语法错误。你是如何创建那个脚本的,它包含了什么?第29行是什么? - Panagiotis Kanavos
1
确切的问题是什么?是CREATE TABLE语句还是INSERT语句?我在您的错误消息中看到了一个CREATE TABLE,所以我假设是创建语句失败了?您能否向我们展示该语句(单击问题下方的“编辑”,粘贴失败的CREATE语句,选择该文本,然后单击“{}”按钮以正确格式化它)。 - TT.
请发布创建表的SQL脚本,否则无法提供帮助。导入向导会生成一个SSIS包。您不需要每次重新运行向导,只需保存包并在需要时运行即可。您也不需要删除和重新创建表,只需将其截断即可。您可以使用TRUNCATE TABLE ARKALK;替换执行CREATE TABLE的任务,并保留包的其余部分。 - Panagiotis Kanavos
3个回答

0
您可以像这样设置数据库的兼容性级别:

ALTER DATABASE database_name 
SET COMPATIBILITY_LEVEL = 100 -- 2008 / 2008 r2

如需有关兼容性级别的更多信息,请阅读相关的MSDN页面。


99.999% 这与兼容性无关。错误提示无效的语法。更改数据库的兼容级别无法修复错误的脚本。 - Panagiotis Kanavos
1
我假设导出脚本没有改变,但你说得对 - 除非在2014年和2008年之间的语法(我同意这是非常不可能的)发生了变化,才会导致此错误。 - Zohar Peled

0
最终我们不得不将数据库迁移到我们的托管提供商的SQL Server 2014。之后一切都正常了。(与SQL Server 2008 R2失败的相同导入例程通过“SQL Server管理工作室”进行)

0
今天我在尝试使用导入/导出向 SQL 2014 数据库导出数据到 2012 服务器时,遇到了完全相同的错误。
我的解决方法是使用“复制数据库”向 2012 服务器上的临时数据库从 2014 服务器上使用向导进行复制。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接