SQLCMD将数据导出到CSV
问题描述:
我使用SQLCMD(SQL命令提示符)将数据导出为CSV,但它抛出一个访问控制相关的问题:SQLCMD将数据导出到CSV
用户登录失败“MEA \用户名”。 ...无法打开数据库“C:\ ABC.mdf”但User(用户名)已经为此数据库提供了完全访问控制。
下面是我的代码:
Dim ServerName As String = System.Net.Dns.GetHostName()
Dim DoubleQuote As String = Chr(34)
Dim DatabaseName As String = DoubleQuote & "C:\Giv 15Mar2017\WindowsApplication1_Givaudan_new\WindowsApplication1_Givaudan_new\WindowsApplication1\Database\ABC.mdf" & DoubleQuote
Dim QueryToExceute As String = DoubleQuote & "set nocount on;Select * from EKPO" & DoubleQuote
Dim ExportFileName As String = "C:\Data\TableData.csv"
Dim QueryToExceute1 As String = DoubleQuote & "set nocount on;Select * from EKPO" & DoubleQuote
Dim ExportFileName1 As String = "C:\Data\TableDataCorrection.csv"
Dim Process = New Process()
Process.StartInfo.UseShellExecute = False
Process.StartInfo.RedirectStandardOutput = True
Process.StartInfo.RedirectStandardError = True
Process.StartInfo.CreateNoWindow = True
Process.StartInfo.FileName = "SQLCMD.EXE"
Process.StartInfo.Arguments = "-S " & ServerName & " -d " & DatabaseName & " -E -Q " &
QueryToExceute1 & " -o " & ExportFileName & " -s""|"" -W"
Process.StartInfo.WorkingDirectory = "C:\Data"
Process.Start()
Process.WaitForExit()
答
您必须指定数据库名称不MDF路径。
sqlcmd -S "YOURSERVER\YOURINSTANCE" -d YOURDATABASENAME
即使你使用LocalDb你不能直接访问到MDF文件,但你必须使用这个sintax:
sqlcmd -S "(localdb)\MSSQLLocalDB" -d YOURDATABASENAME