【问题标题】:SQLCMD to export data to CSVSQLCMD 将数据导出到 CSV
【发布时间】:2017-03-16 08:56:25
【问题描述】:

我正在使用 SQLCMD(SQL 命令提示符)将数据导出到 CSV,但它引发了与访问控制相关的问题:

用户 'MEA\UserName' 登录失败....无法打开数据库“C:\ABC.mdf” 但用户(用户名)已经为此数据库提供了完全访问控制。

下面是我的代码:

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()

【问题讨论】:

    标签: .net sql-server vb.net sqlcmd


    【解决方案1】:

    您必须指定数据库名称而不是 MDF 路径。

    sqlcmd -S "YOURSERVER\YOURINSTANCE" -d YOURDATABASENAME
    

    即使你使用LocalDb,你也不能直接访问 MDF 文件,但你必须使用这个 sintax:

    sqlcmd -S "(localdb)\MSSQLLocalDB" -d YOURDATABASENAME
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-30
      • 2017-12-23
      • 2016-01-18
      • 1970-01-01
      相关资源
      最近更新 更多