douren7179 2017-08-01 19:15
浏览 162

SQL存储过程中的IN子句参数中的VARCHAR [重复]

This question already has an answer here:

I have this string in PHP:

$temp = 'one, two, three, four, five, six';

I call the SQL server Stored Procedure in this way:

$tsql_callSP = "{call spThisIsCalled($temp)}";

I have the following as the Stored Procedure in SQL server and there is soome problem, I don't know what:

CREATE PROC spThisIsCalled(
    @serverVar VARCHAR(100)
)
AS
BEGIN
    SELECT Something, @serverVar
    FROM (  .............
            WHERE
                (........ IN
                ([@serverVar]))
                AS PVT;
END

The @serverVar in the Stored Procedure are the column names but somehow it is not working due to some problem. Please help.

</div>
  • 写回答

1条回答 默认 最新

  • douxia6163 2017-08-01 19:26
    关注

    I figured it is not possible. you can try to move all your code to a variable and then execute, some thing like

    CREATE PROC spThisIsCalled(
        @serverVar VARCHAR(100)
    )
    AS
    BEGIN
    
    declare @sqlCommand varchar(max) = 
    'SELECT Something, ' + @serverVar +  ' FROM (  .............
                WHERE
                    (........ IN
                    (' +  @serverVar + ' ]))AS PVT; ' ;
    
    EXEC SP_EXECUTESQL @sqlCommand
    End
    
    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度