【问题标题】:Stored Procedure if Exist with dynamically table如果存在动态表的存储过程
【发布时间】:2015-03-10 23:30:24
【问题描述】:

我这里有问题,我正在stackoverflow中搜索,但仍然没有找到最好的方法

我有一个像这样的存储过程(SP)

DECLARE @table NVARCHAR(max), @SQLQuery NVARCHAR(max) SET @table = @meta+'_prize4winner'

SET @SQLQuery = '如果存在 (Select * from [dbo].' + @table + ' where idCampaignLog =''' + convert(nvarchar, @ID) +''') exec InsertC2CWinner''' + convert (nvarchar, @meta) +''','''+ convert(nvarchar, @ID)+''',null else select ''you lost ''as winStatus'

执行 SP_EXECUTESQL @SQLQuery

需要帮助如何以及在哪里设置输出如果我想要输出如果存在'你赢'否则'你输'thx

【问题讨论】:

标签: sql-server stored-procedures


【解决方案1】:

一般语法是这样的

DECLARE @retval int   
DECLARE @sSQL nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);

DECLARE @tablename nvarchar(50)  
SELECT @tablename = N'products'  

SELECT @sSQL = N'SELECT @retvalOUT = MAX(ID) FROM ' + @tablename;  
SET @ParmDefinition = N'@retvalOUT int OUTPUT';

EXEC sp_executesql @sSQL, @ParmDefinition, @retvalOUT=@retval OUTPUT;

SELECT @retval;

【讨论】:

    猜你喜欢
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多