not possible, use string concatenation instead, orstring s = String.Format("select * from {0}", YourTableName)
string s = String.Format("select * from {0} where id in({1})", YourTableName, YourIDS);

解决方案 »

  1.   

    第一问同意(这种应用根本不符合逻辑),第二问反对。在集合中加参数是可以的,只要不重名。事实上这种用法在我的框架中用到很多。select * from mytable in (@id1,@id2,@id3)
      

  2.   

    第一个问题:CREATE PROCEDURE PROC1
    @tableName nvarchar(50)
    ASdeclare @sql NVARCHAR(500)
    set @sql = 'select * from ' + @tableNameexec(@sql)第二个问题:CREATE PROCEDURE PROC2
    @tableName nvarchar(50),
    @IDS NVARCHAR(100)
    ASDeclare @sql NVARCHAR(500)
    SET @sql = 'select * from ' + @tableName + ' WHERE id in (' + @IDS + ')'exec(@sql)以上代码都经过测试了