Eu tenho um arquivo .mdf de 120 GB. Ele deveria conter um procedimento armazenado que era apenas para um protótipo e, portanto, foi removido quando corrigimos o banco de dados com novos procedimentos.
Gostaria de recuperá-lo, mas não consigo anexar o banco de dados ao meu banco de dados local, pois não tenho licença para isso. Quando tento conectá-lo ao servidor, ele reclamará que já existe um banco de dados com esse nome e não quero desconectar o servidor porque ele está sendo usado no momento.
Existe uma maneira de usar algum comando cmd, ou igual, para extrair o script SQL do arquivo?
bem não
Não há uma maneira nativa de extrair um único procedimento armazenado de um backup ( .bak ) ou arquivo de dados pendente ( .mdf ). Pode haver utilitários de terceiros que permitiriam que você fizesse isso, mas não tenho nenhuma experiência com eles e encaminhá-lo para um deles seria inapropriado neste fórum.
Você não poderá anexar um banco de dados de 120 GB a uma instância do SQL Server Express Edition , mas poderá baixar o SQL Server Developer Edition e instalá-lo gratuitamente para contornar essa limitação. Não importa por nenhum motivo prático se você usa a versão SQL Server 2022 aqui, pois você só precisa dela para esse propósito singular.
Depois de instalado, você pode executá-lo. Estou partindo do pressuposto de que você também não possui um arquivo de log ( .ldf ) para acompanhá-lo:
Se você tiver um arquivo de log, você desejará referenciá-lo no comando CREATE DATABASE assim: