代码之家  ›  专栏  ›  技术社区  ›  Ehsan Akbar

在SQL Server中追加字符串

  •  0
  • Ehsan Akbar  · 技术社区  · 8 年前

    我想执行这个查询,如您所见:

    DECLARE @site_value INT;
    SET @site_value = 1310;
    
    WHILE @site_value <= 1396
    BEGIN
      ALTER DATABASE AdventureWorksDW
      ADD FILE
      (NAME = N'data_2002',
    
      FILENAME = N'C:\symfadb2filegroup\data_'+@site_value+'.ndf',
      SIZE = 5000MB,
      MAXSIZE = 10000MB,
      FILEGROWTH = 500MB)
      TO FILEGROUP [Filegroup_2002]
    
       SET @site_value = @site_value + 1;
    END;
    

    +@site_value


    我用过 CONVERT CONCAT 但我也犯了同样的错误。

    1 回复  |  直到 8 年前
        1
  •  1
  •   TheGameiswar    8 年前

    您需要像下面这样使用动态sql

     set @Sql=' ALTER DATABASE AdventureWorksDW
      ADD FILE
      (NAME = N''data_2002''
    
      FILENAME = N''C:\symfadb2filegroup\data_'''+cast(@site_value  as varchar(4))+'.ndf'',
      SIZE = 5000MB,
      MAXSIZE = 10000MB,
      FILEGROWTH = 500MB)
      TO FILEGROUP [Filegroup_2002]'
      print @Sql
    

    DECLARE @site_value INT;
    SET @site_value = 1310;
    
    declare @Sql nvarchar(max)
    
    WHILE @site_value <= 1396
    BEGIN
     set @Sql=' ALTER DATABASE AdventureWorksDW
      ADD FILE
      (NAME = N''data_2002''
    
      FILENAME = N''C:\symfadb2filegroup\data_'''+cast(@site_value  as varchar(4))+'.ndf'',
      SIZE = 5000MB,
      MAXSIZE = 10000MB,
      FILEGROWTH = 500MB)
      TO FILEGROUP [Filegroup_2002]'
      print @Sql
      exec(@sql)
    
    
       SET @site_value = @site_value + 1;
    END;