Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server WHERE子句中的动态SQL语法不正确_Sql Server_Dynamic Sql - Fatal编程技术网

Sql server WHERE子句中的动态SQL语法不正确

Sql 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

“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.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吗?