Проблема не в запросе - проблема в том, что вы ошибочно думаете, что @a
должен содержать результаты запроса, тогда как на самом деле он содержит сам запрос.
Вы можете использовать sp_executeSql
для получения желаемых результатов:
declare @a nvarchar (150),
@b nvarchar (100),
@c int
set @b= 'Test'
set @a =('select @count = COUNT(*) from ' +@b + '.dbo.t_ddl_log')
exec sp_executeSql @a, N'@count int output', @c = @count output
if (@c= 0)
print 'True'
else
print 'False'