转换问题他们不应该在哪里?

时间:2013-04-26 13:54:16

标签: sql sql-server-2008 ssms

所以我有两个表,我正在尝试在http://msdn.microsoft.com/en-us/library/ms187928.aspx之间复制数据。我不应该在转换时遇到问题,但似乎我这样做了。以下是两个表格,其中包含诊断此问题的相关信息:

Table1
col1(PK, int, not null)
col2(varchar(4608), null)
col3(datetime, null)
col4(datetime, null)
col5(char(12), null)
col6(datetime, null)
col7(int, null)
col8(datetime, null)
col9(char(1), not null)
col10(varchar(25), null)
col11(char(1), null)
col12(char(1), null)
col13(char(1), null)
col14(uniqueidentifier, null)
col15(FK, in, null)

Table2
col1(PK, int, not null)
col2(varchar(4608), null)
col3(datetime, null)
col4(datetime, null)
col5(char(12), null)
col6(datetime, null)
col7(int, null)
col8(varchar(80), null)
col9(varchar(120), null)
col10(datetime, null)
col11(char(1), not null)
col12(varchar(25), null)
col13(char(1), null)
col14(char(1), null)
col15(char(1), null)

现在这是奇怪的业务发挥作用的地方。表1中的第14列和第15列对应于表2中的第8列和第9列。除此之外,您可以清楚地看到哪些列根据其数据类型排列正确?所以复制那些奇数列的代码在这里:(假设这是在...的底部。

SET IDENTITY_INSERT Table2 ON;
DELETE FROM Table2;
INSERT INTO Table2 (
col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15)
SELECT col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11, col12, col13
,CAST(col14 AS VARCHAR(80))
,CAST(col15 AS VARCHAR(120))
FROM Table1;
SET IDENTITY_INSERT Table2 OFF;

这是我收到的错误消息:

Conversion failed when converting date and/or time from character string.

这里发生了什么?

1 个答案:

答案 0 :(得分:0)

在您的查询中,col10(由我的续)位于列列表和select语句中的相同位置。

表2中的表varchar datetime`为and

这可能是你的问题所在。