Main.dbName = "7202"
query = "select * into " + Main.dbName + ".dbo.[AccountReceivableHistory]
from " + dbOrigin + ".dbo.[AccountReceivableHistory] where
AccountReceivableHistory].Date >= '2012-12-27' and
AccountReceivableHistory].Date < '2012-12-28'"
错误说
'7202'附近的语法错误。
答案 0 :(得分:9)
您可以使用数字作为表名(或数据库名称或模式名称 - 请参阅我的评论),但是,您需要使用[]
转义它:
select *
into [123].[456].[789]
from OtherTable;
[123]
表示数据库,[456]
表示架构,[789]
表示表。
修改
符合standardisation的利益,例如如果RDBMS之间有可能实现未来的可移植性,请注意应优先使用双引号"
而不是[]
进行转义,例如。
SELECT * from "123"."456"."789";
但是,您需要确保在连接上设置set QUOTED_IDENTIFIER ON
。
如果动态构造对象的名称,请注意,通过提供字符分隔符作为第二个参数,也可以覆盖QUOTENAME
function的默认转义,例如:
select QUOTENAME('123', '"');