Create PROCEDURE [dbo].[FilesTemp]
 @Colmun varchar(50),
 @Test varchar(50)
as
 Declare @Str varchar(1000)
 set @Str = 'select * from tb_Files Where ['+rtrim(@Colmun)+'] ='+@Test
 exec(@Str)
在查询的时候
exec Pro_Files_Temp FilesID,'20100417F10004' 
系统老是报在将 varchar 值 '20100417F10004' 转换成数据类型 int 时失败。但是我没有用INT型额,字段也都是varchar类型,有点晕,哪位大侠帮看看,谢谢了
 

解决方案 »

  1.   

    try
    Create PROCEDURE [dbo].[FilesTemp]
     @Colmun varchar(50),
     @Test varchar(50)
    as
     Declare @Str varchar(1000)
     set @Str = 'select * from tb_Files Where ['+rtrim(@Colmun)+'] ='''+@Test+''''
     exec(@Str)
      

  2.   

    楼主,遇到类似的问题,你加一个打印语句就知道了在 exec(@Str) 前加一句 print @str看看打印出来的语句就知道错在什么地方了
      

  3.   

    Create PROCEDURE [dbo].[FilesTemp]
     @Colmun varchar(50),
     @Test varchar(50)
    as
     Declare @Str varchar(1000)
     set @Str = 'select * from tb_Files Where ['+rtrim(@Colmun)+'] ='''+@Test+''''
     exec(@Str)
      

  4.   

    Create PROCEDURE [dbo].[FilesTemp]
     @Colmun varchar(50),
     @Test varchar(50)
    as
    begin
     Declare @Str varchar(1000)
     set @Str = 'select * from tb_Files Where ['+rtrim(@Colmun)+'] ='''+@Test+''''
     exec(@Str)
    end
      

  5.   

    Create PROCEDURE [dbo].[FilesTemp]
     @Colmun varchar(50),
     @Test varchar(50)
    as
    begin
     Declare @Str varchar(1000)
     set @Str = 'select * from tb_Files Where [' + @Colmun + '] = ''' + @Test + ''''
     exec(@Str)
    end
      

  6.   

    Create PROCEDURE [dbo].[FilesTemp]
     @Colmun varchar(50),
     @Test varchar(50)
    as
    begin
     Declare @Str varchar(1000)
     set @Str = 'select * from tb_Files Where [' + @Colmun + '] = quotename(@Test,char(39))
     exec(@Str)
    end这样也行
      

  7.   

    Create PROCEDURE [dbo].[FilesTemp]
     @Colmun varchar(50),
     @Test varchar(50)
    as
    begin
     Declare @Str varchar(1000)
     set @Str = 'select * from tb_Files Where [' + @Colmun + ']' = quotename(@Test,char(39))
     exec(@Str)
    end
      

  8.   


    我执行加print @str后的语句提示“命令已成功完成。”