为什么我不能“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