2016-08-22 42 views
0

誰知道爲什麼我的查詢不能很好的工作SQL檢查如果表然後返回產值

ALTER PROCEDURE [dbo].[SPMonStoVal] 
    @StoDate varchar(25), 
    @StockStatus varchar(2) OUT 
AS 
    DECLARE 
     @TbName varchar(25) 

    SET @TbName = 'zSTO:'[email protected] 

    EXEC('IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''[dbo].['[email protected]+']'') AND type in (N''U'')) 
     SET @StockStatus = ''1'' 
    ELSE 
     SET @StockStatus = ''0'' ') 

誰知道爲什麼我的查詢不能很好地工作?

回答

1

爲什麼使用執行文本只是用簡單的語句

ALTER PROCEDURE [dbo].[SPMonStoVal] 
    @StoDate varchar(25), 
    @StockStatus varchar(2) OUT 
AS 
BEGIN 
    DECLARE 
     @TbName varchar(25) 

    SET @TbName = 'zSTO:'[email protected] 

    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(CAST(@TbName AS NVARCHAR(100))) AND type in (N'U')) 
     SET @StockStatus = '1' 
    ELSE 
     SET @StockStatus = '0' 
END 
+0

我想如果表是動態的,所以必須使用執行文本。 – Bagong

相關問題