如何在动态 sql 中的 table 名称中使用 &(与号)字符?
How to use & (ampersand) character in table name in dynamic sql?
我正在使用来自一组 table 的动态 SQL 到 Select,其中一些 table 名称包含“&”字符。
但是,一旦我的查询命中其中一个 tables,我就会收到以下错误:
Incorrect syntax near '&'.
下面是一些重现我遇到的错误的示例代码:
DECLARE @TABLE_NAME AS NVARCHAR(150);
SET @TABLE_NAME = 'A&BTable';
EXEC(
'SELECT col1, col2, col3
FROM Warehouse_Repository.dbo.' + @TABLE_NAME
)
如何更改此查询,以便我可以使用动态 SQL 从 table 个包含“&”的名称中 Select?
添加一个QUOTENAME
DECLARE @TABLE_NAME AS NVARCHAR(150);
SET @TABLE_NAME = QUOTENAME('A&BTable');
EXEC(
'SELECT col1, col2, col3
FROM dbo.' + @TABLE_NAME
)
我正在使用来自一组 table 的动态 SQL 到 Select,其中一些 table 名称包含“&”字符。 但是,一旦我的查询命中其中一个 tables,我就会收到以下错误:
Incorrect syntax near '&'.
下面是一些重现我遇到的错误的示例代码:
DECLARE @TABLE_NAME AS NVARCHAR(150);
SET @TABLE_NAME = 'A&BTable';
EXEC(
'SELECT col1, col2, col3
FROM Warehouse_Repository.dbo.' + @TABLE_NAME
)
如何更改此查询,以便我可以使用动态 SQL 从 table 个包含“&”的名称中 Select?
添加一个QUOTENAME
DECLARE @TABLE_NAME AS NVARCHAR(150);
SET @TABLE_NAME = QUOTENAME('A&BTable');
EXEC(
'SELECT col1, col2, col3
FROM dbo.' + @TABLE_NAME
)