使用 SQLCMD 执行脚本 return 无效的对象名称

Use SQLCMD to execute script return Invalid object name

我必须在 sql 中插入大量数据,该操作无法通过 SQL Management Studio 进行,因此我正在研究通过 sqlcmd 进行插入。所以我做了以下事情:

  1. 创建一个包含以下查询(多次)的 file.sql:

    IF NOT EXISTS (SELECT * FROM [dbo].[tblAccount] 
                   WHERE [AccountID] = 117242 AND
                         [TimeStamp] = CAST(N'2013-01-16 05:53:50.490' AS DateTime)) 
    BEGIN
        INSERT INTO
            [dbo].[tblAccount] ([AccountID]
                               ,[Name]
                               ,[Comment]
                               ,[IsMachine]
                               ,[UserID]
                               ,[Prefix]
                               ,[Action]
                               ,[Initials]
                               ,[Name]
                               ,[TimeStamp]
                               ,[Reason]
                               ,[Iscal]) 
                        VALUES (117242
                               ,'blabla'
                               ,'The users project)'
                               ,1
                               ,'val'
                               ,39
                               ,'val'
                               ,'blabla'
                               ,'blabla'
                               ,CAST(N'2013-01-16 05:53:50.490' AS DateTime)
                               ,'NORMAL'
                               ,'0')
    END
    
  2. 我将文件保存到一个文件夹中,然后从命令行执行以下操作:

    C:\>sqlcmd -S pc_name\MSSQLEXPRESS -i"C:\Users\name\Desktop\OutPut\Result tblAccount.sql"
    

我收到以下错误:

Msg 208, Level 16, State 1, Server pc_name\MSSQLEXPRESS, Line 1
Invalid object name 'dbo.tblAccount'.

我不确定它是否与 sql 的语法或我编写 sqlcmd 的方式有关。

我知道这是一年多前的问题,但如果有人 运行 遇到同样的问题,请务必提供凭据。我只是 运行 遇到同样的问题并且没有提供凭据,sqlcmd 发出该错误。我不知道幕后发生了什么,但似乎它在身份验证失败时连接到某种默认数据库,结果找不到 table。

 sqlcmd -S <computer name> -U <username> -P <password> -i  <absolute path to your script>