代码之家  ›  专栏  ›  技术社区  ›  Jordan H

试图查询本地SQL Server数据库时发生无效的对象名请求错误

  •  0
  • Jordan H  · 技术社区  · 6 年前

    我已成功连接到一个生产SQL Server数据库,并使用Knex查询它。然后,我使用Docker和SQL Operations Studio在MacOS上本地还原了该数据库(如下 this walkthrough )我可以连接到它并在sqlops中查询它。我现在正试图通过编程方式连接和查询本地数据库,而不是通过生产数据库。我更新了配置以填写本地托管数据库的相关信息,但我认为这并不完全正确,因为我收到以下错误:

    请求错误:从[ourtablename]中选择top(@p0)*,其中[someid]=@p1-无效的对象名'ourtablename'。

    对该错误的研究表明,这可能是一个配置问题。这是我的配置对象:

    {
      client: 'mssql',
      connection: {
        user: 'sa',
        password: 'password',
        server: 'localhost',
        port: 1433,
        options: {
          encrypt: false,
          database: 'ourdbname',
        },
      },
      pool: {
        min: 2,
        max: 10,
      },
    }
    

    你看到问题所在了吗?在我能够以编程方式连接到sqlops之前,还有什么需要我在sqlops中做的吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   marc_s HarisH Sharma    6 年前

    查看Knex自己的SQL Server配置文件 here ,它们的配置格式不同。不确定配置来自何处,但请试一试:

    {
        client: 'mssql',
        connection: testConfig.mssql || {
          user: 'sa',
          password: 'S0meVeryHardPassword',
          server: 'localhost',
          database: 'knex_test',
        },
        pool: pool,
        migrations: migrations,
        seeds: seeds,
    }
    
        2
  •  1
  •   Laughing Vergil    6 年前

    这通常是一个问题,您连接到哪个数据库,与哪个数据库保存表。安 'sa' 登录默认为 master 数据库。尝试使用此类型的请求:

    select top (@p0) * 
    from [OurDBName].[dbo].[OurTableName] 
    where [SomeID] = @p1