CRIAR DB SQL NA PASTA PADRAO DO SQL SERVER
Bom dia!
Estou criando um utilitário do meu sistema, que criará todos os bancos de dados necessário no servidor SQL do cliente, durante a instalação.
Problema
O cliente pode ter qualquer versão do SQL, seja full ou express acima da v.2008 R2. Sendo assim cada versão do SQL possui uma pasta diferente para armazenar os arquivos de banco.
No script gerado pelo próprio SQL de criação tem a instrução:
DÚVIDAS:
Como alterar o código acima para que ele use a pasta padrão da versão do SQL do cliente? No exemplo o meu é SQL Express 2008 R2 e a pasta é: MSSQL10_50.MSSQLSERVER
Estou criando um utilitário do meu sistema, que criará todos os bancos de dados necessário no servidor SQL do cliente, durante a instalação.
Problema
O cliente pode ter qualquer versão do SQL, seja full ou express acima da v.2008 R2. Sendo assim cada versão do SQL possui uma pasta diferente para armazenar os arquivos de banco.
No script gerado pelo próprio SQL de criação tem a instrução:
CREATE DATABASE [db_ArquivosDoc_01] ON PRIMARY
( NAME = N[ô]db_ArquivosDoc_01[ô], FILENAME = N[ô]c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\db_ArquivosDoc_01.mdf[ô] , SIZE = 66560KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N[ô]db_ArquivosDoc_01_log[ô], FILENAME = N[ô]c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\db_ArquivosDoc_01_log.ldf[ô] , SIZE = 39296KB , MAXSIZE = 2048GB , FILEGROWTH = 1024KB )
GO
DÚVIDAS:
Como alterar o código acima para que ele use a pasta padrão da versão do SQL do cliente? No exemplo o meu é SQL Express 2008 R2 e a pasta é: MSSQL10_50.MSSQLSERVER
Bom descobri e é muito simples até, posto a solução aqui.
Basta criar um Select comum assim:
Este código retorna o path + o nome do banco principal do SQL Server (instância em uso). Para ter só o path, basta excluir desta string o nome do banco ao final que é master.mdf
Basta criar um Select comum assim:
Citação:
USE [master]
GO
SELECT physical_name FROM sys.database_files WHERE (name = [ô]master[ô]);
Este código retorna o path + o nome do banco principal do SQL Server (instância em uso). Para ter só o path, basta excluir desta string o nome do banco ao final que é master.mdf
Tópico encerrado , respostas não são mais permitidas