DECLARE @SQL AS VARCHAR(2000),@EncodeID AS VARCHAR(2000)
BEGIN
SET @SQL='SELECT  * FROM  @EncodeID=(SELECT  TableName FROM dbo.CAccountingProjectType WHERE id=1)' 
exec(@SQL)
END 
如何修改

解决方案 »

  1.   


    DECLARE @SQL AS NVARCHAR(2000),@EncodeID AS VARCHAR(2000)
    SET @EncodeID='' 
    BEGIN
    SET @SQL='SELECT  * FROM  @EncodeID=(SELECT  TableName FROM dbo.CAccountingProjectType WHERE id=1)' 
    EXEC sp_executesql @SQL,N'@EncodeID varchar(2000) output',@EncodeID OUTPUT
    END 
     使用sp_executesql  ,注意 @SQL 一定要为 NVarchar 类型,
       在 参数前面 要加 N
      

  2.   

    DECLARE @SQL AS VARCHAR(2000),@EncodeID AS VARCHAR(2000)
    BEGIN
    SET @SQL='SELECT '+@EncodeID+'= TableName FROM dbo.CAccountingProjectType WHERE id=1
         ' 
    exec(@SQL)
    set @sql = 'select * from '+@encodeidexec(@SQL)
    END 
      

  3.   

    DECLARE @SQL AS VARCHAR(2000),@EncodeID AS VARCHAR(2000)
    BEGINselect @EncodeID=TableName FROM dbo.CAccountingProjectType WHERE id=1SET @SQL='SELECT  * FROM  ' + @EncodeIDexec(@SQL)END 
      

  4.   

    SELECT  TableName FROM dbo.CAccountingProjectType WHERE id=1
    得出表名
    再根据表名取这表的数据
    SQL
    楼上2位都没得
      

  5.   


    --上面的错啦
    DECLARE @SQL AS VARCHAR(2000),@EncodeID AS VARCHAR(2000)
    BEGIN
      select @EncodeID = TableName FROM dbo.CAccountingProjectType WHERE id=1set @sql = 'select * from '+@encodeidexec(@SQL)
    END