sql server语言 - TSQL -尝试使用变量与IF EXISTS()函数简单SP



我们公司运行一个MS Access前端和SQL后端,我试图为前端提供一个存储过程,允许它访问T-SQL的IF EXIST,而不是使用DCount来提高性能。为此,我需要能够将SELECT语句传递给存储过程,到目前为止,我有以下代码:

CREATE PROCEDURE [dbo].IfExists 
@selectStatement varchar(MAX)
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS (@selectStatement)
    RETURN 1
ELSE
    RETURN 0
END
GO

不起作用,因为它不喜欢用@selectStatement代替硬编码语句。我不知道如何才能做到这一点,任何帮助将不胜感激。

您需要使用动态sql来实现这个

http://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/

例如:

DECLARE @DynamicSQl NVARCHAR(MAX), @retVal INT
SET @DynamicSQl = 'select @retVal = 1 from (' + @selectCommand + ') t'
EXEC sp_executesql @DynamicSQl, N'@retVal INT OUTPUT', @retVal output
IF (@retVal = 1)
  RETURN 1
ELSE
  RETURN 0

最新更新