为什么有些行可以插入而有些行不能?

时间:2015-05-26 08:20:46

标签: sql sql-server database vb.net

当我使用Cashier表或其他具有少量记录的表时,进程继续进行并将表插入外部数据库。但是,当我将收银员更改为交易数据库(400k +记录)时,Visual Studio报告“交易”附近的错误帮助将不胜感激。

收银员数据库(工作)

Dim query As String = "select * into MyDatabase2.dbo.Cashier from bos_primary_db.dbo.Cashier"

交易数据库(不工作)

Dim query As String = "select * into MyDatabase2.dbo.Transaction from bos_primary_db.dbo.Transaction"

这是错误消息:

  

关键字“交易”附近的语法不正确

1 个答案:

答案 0 :(得分:2)

这可能是因为Transaction是SQL中的保留字。 根据您的RDBMS(您没有指定),有很多方法可以避免"逃避"它:
对于 Sql Server ,您应该将保留字包装在方括号中:

select * into MyDatabase2.dbo.[Transaction] from bos_primary_db.dbo.[Transaction]

对于 MySql ,您应该使用撇号:

select * into MyDatabase2.dbo.`Transaction` from bos_primary_db.dbo.`Transaction`

对于 Oracle ,您应该使用双引号:

select * into MyDatabase2.dbo."Transaction" from bos_primary_db.dbo."Transaction"

注意:您应该始终尽量避免使用保留字。 This link描述了我最喜欢的方式。