Sql server WHERE子句中的动态SQL语法不正确
“dtproperties”附近的语法不正确。如果我没有将它作为一个动态sql,那么它工作得非常好。但是,如果它在动态sql中,为什么不工作呢?我的作业要求我使用动态sqlSql server WHERE子句中的动态SQL语法不正确,sql-server,dynamic-sql,Sql Server,Dynamic Sql,“dtproperties”附近的语法不正确。如果我没有将它作为一个动态sql,那么它工作得非常好。但是,如果它在动态sql中,为什么不工作呢?我的作业要求我使用动态sql USE MyGuitarShop; DECLARE @DynamicSQL varchar(8000); SET @DynamicSQL = 'SELECT TOP 1 sys.tables.name, COUNT(*) AS TotalTable FROM sys.tables WHERE sys.tables.n
USE MyGuitarShop;
DECLARE @DynamicSQL varchar(8000);
SET @DynamicSQL =
'SELECT TOP 1 sys.tables.name, COUNT(*) AS TotalTable
FROM sys.tables
WHERE sys.tables.name NOT IN ('dtproperties', 'sysdiagrams')
GROUP BY sys.tables.name
ORDER BY sys.tables.name';
EXEC (@DynamicSQL);
将单引号加倍以转义单引号
SET @DynamicSQL =
'SELECT TOP 1 sys.tables.name, COUNT(*) AS TotalTable
FROM sys.tables
WHERE sys.tables.name NOT IN (''dtproperties'', ''sysdiagrams'')
GROUP BY sys.tables.name
ORDER BY sys.tables.name';
如果它实际上不是动态的,它算动态SQL吗?