表名是不确定的,我这样怎么老说a无效?请问这是怎么回事??希望网友们帮帮忙!!!谢谢!
create proc Proc_TB_TableName_Select 
@FingerprintInformation varchar(MAX),--指纹
@TableName varchar(50) --指纹表名
as
begin transaction
declare @Select varchar(50) 
set @Select='select FingerprintInformationID,TableNameID from '+@TableName +' where FingerprintInformation=' + @FingerprintInformation
exec(@Select)
waitfor delay '00:00:00';--等待秒
commit transactionexec Proc_TB_TableName_Select '11','a1' --表名为a1,a2,……

解决方案 »

  1.   

    @Select varchar(50)  定大点试试,我觉得应该是50的限制导致query后面的字段被truncate了
      

  2.   

    exec(@Select)
    改成
    print(@Select)看看输出的SQL是啥?
      

  3.   

    怕出错就用
    try 
    ...
    catch...
      

  4.   

    create proc Proc_TB_TableName_Select  
    @FingerprintInformation varchar(MAX),--指纹
    @TableName varchar(50) --指纹表名
    as
    begin transaction
    declare @Select varchar(50)  
    set @Select='select FingerprintInformationID,TableNameID from ['+@TableName +'] where FingerprintInformation=' + @FingerprintInformation
    exec(@Select)
    waitfor delay '00:00:00';--等待秒
    commit transactionexec Proc_TB_TableName_Select '11','a1' --表名为a1,a2,……在FROM 后面用 []将表名 包起来