DECLARE @Query NVARCHAR(MAX)<br />
DECLARE @Count NVARCHAR(MAX)<br />
SET @Query =' AND IsActive=1'
SET @Count=(SELECT COUNT(Id) FROM tbl_Id WHERE Id='9' + @Query)<br />
SELECT @Count
问题是@Count
始终返回零,但是如果我从查询中删除@Query
,则它运行正常。
答案 0 :(得分:1)
让我们看看。您有一个WHERE
子句,它指定:
WHERE id = '9 AND IsActive = 1'
对于名为id
的列来说,这似乎是一个非常奇怪的值,因此我对查询没有找到任何内容感到惊讶。
您似乎想要动态SQL:
SET @Query = '
SELECT @Count = COUNT(*)
FROM tbl_id
WHERE id = ''9''
';
SET @Count = @Query + ' AND IsActive = 1';
EXEC sp_executesql @query,
N'@Count int output',
@Count=@Count;