我在'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);
答案 0 :(得分:2)
将单引号加倍以逃避单引号。
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';