如何从sql
中的另一个数据库将数据导入数据库中的现有表我正在尝试这个但不行。这是说
'无法在时间戳列中插入显式值。'将
INSERT
与列列表一起使用以排除时间戳列,或将DEFAULT
插入timestamp
列。
Insert Into [test].[dbo].[Sample$Employee]
select * from [Test1].[dbo].[Sample1$Employee]
由于
答案 0 :(得分:0)
你可以尝试
INSERT INTO <database>.<schema>.<table>
SELECT * FROM <source_database>.<schema>.<source_table>
修改后,您需要指定要插入新表的列。
所以你的查询可能是
INSERT INTO <database>.<schema>.<table>([Column1], [Column1], [Column1])
SELECT [Column1],[Column2],[Column3] FROM <source_database>.<schema>.source_table>
正如我从错误消息中看到的那样,您需要隐式定义列类型。
例如:如果列的类型为DATE,则需要使用CAST(列AS DATE)AS [Column_Name]。
答案 1 :(得分:0)
INSERT INTO Target_Table(Column1, Column2, Column3)
SELECT Column1, Column2, Column3
FROM Source_Database.Source_Table
答案 2 :(得分:0)
错误消息实际上为您提供了所需的答案:
将INSERT与列列表一起使用以排除时间戳列,或将DEFAULT插入时间戳列。
修改强>
TIMESTAMP
列无法显式写入,您需要从insert语句中排除此列,或者......如果您确实希望从源表中移除时间戳数据,则需要更改目标表中相应字段的类型。
答案 3 :(得分:0)
您的表格中有timestamp
, aka rowversion
类型的列。无法写入此类型的列。
不使用包含您无法复制的列的*
,而是写出列列表并省略timestamp
类型的列。
答案 4 :(得分:-1)
试试这个:
Select * into SQLShackDemo.HumanResources.Department
from AdventureWorks2012.HumanResources.Department