试试CREATE proc Read_Data
(
@Table_Name nvarchar(255),
@Fields_Name nvarchar(255),
@Fields_Value nvarchar(255)
)
as
exec('select * from ' + @Table_Name + 'where ' + @Fields_Name + '=' + @Fields_Value + '')GO
执行
exec Read_Data 'tUserInfo' , 'fUInterNo' ,'26557161-b939-43a5-ae13-108adaf370e2'

解决方案 »

  1.   

    exec('select * from ' + @Table_Name +
     ' where ' + @Fields_Name + '=''' + @Fields_Value + '''')
     ^^(whrer前要多个空格)        ^^^                   ^^^两个单引号,代表一个单引号
      

  2.   

    再试试Alter proc Read_Data
    (
    @Table_Name nvarchar(255),
    @Fields_Name nvarchar(255),
    @Fields_Value nvarchar(255)
    )
    asdeclare @T varchar(8000)set @T='select * from ' + @Table_Name + '  where   ' + @Fields_Name + '=''' + @Fields_Value + ''''--print @T
    exec(@T)
      

  3.   

    多谢,这样可以了,但我想把where后面的多个name=value合并,exec('select * from ' + @Table_Name +' where ' + @WhereClause
    传入的参数应该怎样,是不是一样的,
      

  4.   

    CREATE proc Read_Data
    (
    @Table_Name nvarchar(255),
    @WhereClause nvarchar(255)
    )
    as
    exec('select * from ' + @Table_Name +
     ' where ' + @WhereClause )
    GO
    执行
    exec Read_Date 'tUserInfo' ,'fInterNo=8543581c-f2a1-4a35-af8f-2ea5ce4c6b17'
    错误
    第 1 行: '8543581' 附近有语法错误。
      

  5.   

    在where 前沒有打空格.. 用下面的方法看看你的語句..declare @Table_Name nvarchar(255),
    @Fields_Name nvarchar(255),
    @Fields_Value nvarchar(255)select @Table_Name=  'tUserInfo' , @Fields_Name='fUInterNo' , @Fields_Value = '26557161-b939-43a5-ae13-108adaf370e2'print 'select * from ' + @Table_Name + '  where ' + @Fields_Name + '=''' + @Fields_Value + ''''
      

  6.   

    Alter proc Read_Data
    (
    @Table_Name nvarchar(255),
    @WhereClause nvarchar(255)
    )
    asdeclare @T varchar(8000)set @T='select * from  ' + @Table_Name + '  where   ' + @WhereClause+ ''print @T
    exec(@T)
    exec Read_Data 'tUserInfo' , 'fUInterNo=''26557161-b939-43a5-ae13-108adaf370e2'''
      

  7.   

    Alter proc Read_Data
    (
    @Table_Name nvarchar(255),
    @WhereClause nvarchar(255)
    )
    asdeclare @T varchar(8000)
    exec('select * from  ' + @Table_Name + '  where   ' + @WhereClause+ '')调用exec Read_Data 'tUserInfo' , 'fUInterNo=''26557161-b939-43a5-ae13-108adaf370e2'''
      

  8.   

    Alter proc Read_Data
    (
    @Table_Name nvarchar(255),
    @WhereClause nvarchar(255)
    )
    asexec('select * from  ' + @Table_Name + '  where   ' + @WhereClause+ '')
    调用exec Read_Data 'tUserInfo' , 'fUInterNo=''26557161-b939-43a5-ae13-108adaf370e2'''
      

  9.   

    在查询分析器没有错,但在docnet程序中出错,请问怎么在程序写