代码之家  ›  专栏  ›  技术社区  ›  goofyui

如何在sql中修改/重命名数据库名?

  •  -1
  • goofyui  · 技术社区  · 6 年前

    如何在sql中修改/重命名数据库名?

    运行下面的脚本将异常抛出为“在@dbname附近的语法不正确”

    Declare @dbname nvarchar(50)
    set @dbname = 'MyDatabase_Test'
    
    ALTER DATABASE MyDatabase MODIFY NAME = @dbname;
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Joe Stefanelli    6 年前

    您必须以动态sql的形式执行此操作。

    Declare @dbname nvarchar(50)
    set @dbname = 'MyDatabase_Test'
    
    EXEC('ALTER DATABASE MyDatabase MODIFY NAME = ' + @dbname);
    
        2
  •  1
  •   Emilio Lucas Ceroleni    6 年前
    DECLARE @SQLString nvarchar(500);  
    DECLARE @OldDbName nvarchar(100);
    DECLARE @NewDbName nvarchar(100);
    
    SET @OldDbName =  'MyTestDatabase';
    SET @NewDbName =  'MyNewTestDatabase';
    BEGIN TRY
    
            SET @SQLString =  
                        N'ALTER DATABASE ' +  @OldDbName + ' SET SINGLE_USER WITH ROLLBACK 
    IMMEDIATE'; 
            EXECUTE sp_executesql @SQLString
    
            SET @SQLString =  
                        N'ALTER DATABASE ' +  @OldDbName + ' MODIFY NAME = ' + @NewDbName;
            EXECUTE sp_executesql @SQLString            
    
            SET @SQLString =  
                        N'ALTER DATABASE ' +  @NewDbName + ' SET MULTI_USER' ;
            EXECUTE sp_executesql @SQLString
    
    END TRY
    BEGIN CATCH
        PRINT ERROR_MESSAGE();
    
    END CATCH