为什么我不能“SELECT INTO”名称以数字开头的数据库?

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'"

错误说为什么我不能“SELECT INTO”名称以数字开头的数据库?

附近有语法错误 '7202'。

回答:

您可以使用一个编号为表名(或数据库名称,或架构名称 - 看我的意见),但是,您将需要[]逃吧:

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', '"'); 

以上是 为什么我不能“SELECT INTO”名称以数字开头的数据库? 的全部内容, 来源链接: utcz.com/qa/263806.html

回到顶部