como criar banco de dados SQL Server com código vb.net
-
21-12-2019 - |
Pergunta
Estou usando VB 2012 e SQL Server 2012 Localdb
Quero criar um arquivo de banco de dados (.mdf
) na minha pasta C:\AppData
por exemplo.nome do arquivo db 0105.mdf
& nome do arquivo de log 0105.ldf
Alguém pode me dizer o procedimento?
Posso me conectar ao SQL Server 2012 localdb usando string de conexão
Data Source=(LocalDB)\v11.0;AttachDbFilename={0};Integrated Security=True;Connect Timeout=30
Solução 2
Obrigado Steve Pettifer
Aqui está o código final que funcionou
Dim Conn As New SqlConnection("Data Source=(LocalDB)\v11.0;Initial Catalog=master;Integrated Security=True")
Using Conn
Conn.Open()
Dim cmd As SqlCommand = Conn.CreateCommand
Dim str As String = "CREATE Database {0} ON (Name= N'{0}', FileName='{1}\{0}.mdf')"
cmd.CommandText = String.Format(str, T2.Text, T1.Text)
cmd.ExecuteNonQuery()
End Using
T1.texto:Localização da pasta T2.text:Nome do arquivo sem extensão
Outras dicas
Usar SqlCommand.ExecuteNonQuery
Imports System.Data.SqlClient
Dim queryString As String = "CREATE DATABASE [0105] ON PRIMARY (NAME = N'0105', FILENAME = N'C:\APPDATA\Pluto_Data.MDF' , SIZE = 1024KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) " & _
"LOG ON (NAME = N'0105_Log', FILENAME = N'C:\APPDATA\0105_Log.LDF' , SIZE = 1024KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )"
Using connection As New SqlConnection(queryString)
Dim command As New SqlCommand(queryString, connection)
command.Connection.Open()
command.ExecuteNonQuery()
End Using
Basta alterar os bits que você precisa alterar acima, como grupo de arquivos, crescimento de arquivos e tamanhos iniciais, etc.Acho que vai funcionar, embora eu não tenha o LocalDB em mãos para experimentá-lo, então posso estar um pouco fora do curso.
EDITAR: Eu estava fora do curso e muito livre e fácil com o T-SQL.
Em vez disso, tente fazer isso, no link que adicionei em um comentário abaixo.
Public Function CreateDatabase(ByVal dbName As String, ByVal dbFileName As String) As Boolean
Try
Dim connectionString As String = String.Format("Data Source=(LocalDB)\v11.0;Initial Catalog=master;Integrated Security=True")
Using connection As New SqlConnection(connectionString))
connection.Open()
Dim cmd As SqlCommand = connection.CreateCommand()
DetachDatabase(dbName)
cmd.CommandText = String.Format("CREATE DATABASE {0} ON (NAME = N'{0}', FILENAME = '{1}')", dbName, dbFileName)
cmd.ExecuteNonQuery()
End Using
If (My.Computer.FileSystem.FileExists(dbFileName)) Then
Return True
Else
Return False
End If
Catch
Throw
End Try
End Function