MS SQL 2008 / в названии таблицы

Рейтинг: 0Ответов: 1Опубликовано: 14.07.2023

пытаюсь получить данные из таблицы, таблица существует(проверено не один раз), название совпадает (проверено не один раз), как я понял (насколько моего уровня знаний хватает) проблема в самом названии таблицы.

import pandas as pd
from sqlalchemy import create_engine, text

# variables
serverName = "DBTEST"

engine = create_engine('mssql+pyodbc://user:password@X.X.X.X/TEST?driver=SQL+Server')
conn = engine.connect()

queryDiscr = text(f'SELECT * FROM "{serverName}$Sales/purch" ')
DiscrDF = pd.read_sql_query(queryDiscr, conn)

пробовал экранировать по разному:

    queryDiscr = text(f'SELECT * FROM [{serverName}$Sales/purch] ')
    queryDiscr = text(f'SELECT * FROM {serverName}[$Sales/purch] ')
    queryDiscr = text(f'SELECT * FROM "{serverName}$Sales/purch" ')
    queryDiscr = text(f'SELECT * FROM \"{serverName}$Sales/purch\" ')

одна и та же ошибка Invalid object name 'DBTEST$Sales/purch' помогите пожалуйста с запросом.

Ответы

▲ 1Принят

Пожалуйста, попробуйте следующее в SSMS.

Это покажет имена таблиц и остальные детали.

USE DBTEST;
GO

SELECT * FROM INFORMATION_SCHEMA.TABLES;

Например, для базы данных AdventureWorks2019:

TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE
AdventureWorks2019 Sales SalesTaxRate BASE TABLE
AdventureWorks2019 Sales PersonCreditCard BASE TABLE
AdventureWorks2019 dbo T BASE TABLE
AdventureWorks2019 Person vAdditionalContactInfo VIEW
AdventureWorks2019 Person PersonPhone BASE TABLE