大家好:    小弟新手,遇到一个问题,想判断一个文件是否存在,文件名name_db是动态的,用下面这句话,提示说“+”附近有错误:DECLARE @result int
DECLARE @name_db AS VARCHAR(100)
SET @name_db='Northwind'
exec xp_fileexist 'F:\sqlbak\\'+@name_db+'.bak',@result output    如果这样写能执行:DECLARE @result int
DECLARE @name_db AS VARCHAR(100)
SET @name_db='Northwind'
exec xp_fileexist 'F:\sqlbak\northwind.bak',@result output    说明字符串和变量之间的连接有问题,不知道怎么修改。    不知道大家是否有简单的办法,谢谢!

解决方案 »

  1.   

    DECLARE @result int
    DECLARE @name_db AS VARCHAR(100)
    SET @name_db='Northwind'
    SET @name_db='Northwind'
    set @cmd = 'F:\sqlbak\\'+@name_db+'.bak'
    exec xp_fileexist @cmd,@result output
      

  2.   

    DECLARE @result int
    DECLARE @SQL VARCHAR(200)
    DECLARE @name_db AS VARCHAR(100)
    SET @name_db='Northwind'
    SET @SQL='F:\sqlbak\'+@name_db+'.bak'
    exec xp_fileexist @SQL,@result output
    select @result
      

  3.   

    前面少了一句
    declare @cmd varchar(2000)
      

  4.   

    执行前用一个变量表示要查询的file,如
    DECLARE @result int
    DECLARE @name_db AS VARCHAR(100),@file varchar(200)
    SET @name_db='Northwind'
    set @file='F:\sqlbak\\'+@name_db+'.bak'
    exec xp_fileexist @file,@result output
    select @result
      

  5.   

    DECLARE @result int
    DECLARE @name_db AS VARCHAR(100),@path  AS VARCHAR(400)
    SET @name_db='Northwind'
    select @path='F:\sqlbak\'+@name_db+'.bak'
    exec xp_fileexist @path,@result output