我使用Microsoft SQL Server2012。我需要检查SiteObjects数据库中命名的表是否至少有一条记录,其中命名为SiteRegionId的值等于22。
如果是这样,则必须注入一些逻辑;如果不是,则必须实现另一个逻辑。
这是我的实现:
IF EXISTS (SELECT * FROM SiteObjects WHERE SiteRegionId = 22)
BEGIN
----do what you need if exists
RETURN '0'; --not deleted
END
ELSE
BEGIN
--do what needs to be done if not
DELETE FROM SiteRegions
WHERE Id = 22;
RETURN '1';
END
Run Code Online (Sandbox Code Playgroud)
我认为这一行:
SELECT * FROM SiteObjects WHERE SiteRegionId = 22
Run Code Online (Sandbox Code Playgroud)
之所以无效,是因为据我了解它可以在所有表行上运行并选择SiteRegionId等于22的所有行。是否有任何方法可以使其更有效?并检查是否有任何行满足条件,请继续。