对象名称包含非法字符的SQL查询

对象名称包含非法字符的SQL查询,sql,sql-server,Sql,Sql Server,我想将数据从SQL Server A复制到SQL Server B;因此,我有如下查询语句: INSERT INTO ServerA_Name.db_name.table_name SELECT * FROM ServerB_Name.db_name.table_name where date >= GETDATE() 但是,ServerA名称有一个非法字符:'-'(例如:a-01),我无法更改ServerA名称,因为它会导致其他潜在问题。所以我得到了:“-”附近的语法不正确。错误。。

我想将数据从SQL Server A复制到SQL Server B;因此,我有如下查询语句:

INSERT INTO ServerA_Name.db_name.table_name 
SELECT * FROM ServerB_Name.db_name.table_name where date >= GETDATE()

但是,ServerA名称有一个非法字符:'-'(例如:a-01),我无法更改ServerA名称,因为它会导致其他潜在问题。所以我得到了:“-”附近的语法不正确。错误。。。。有没有解决此问题的好方法?

如果服务器a的名称包含非法字符(我在您的案例中没有看到),您需要将该服务器的名称放在方括号中,例如:

INSERT INTO [ServerA_Name].db_name.table_name

SQL server中的方括号用作引号,允许您使用特殊(或非法)字符或空格。

不能将表名置于双引号中吗?将表名或列名置于方括号中。但我看不到dash在你的查询中的任何地方被使用。嗨,琼斯321,你可能想先读一读,它可能是一个很好的参考。可能是