From fdc369c139292bd84fe96116a14463f62872fdd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=8B=9C=EA=B3=A8=EC=95=BD=EC=82=AC?= Date: Fri, 23 Jan 2026 16:36:03 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20MSSQL=20=ED=85=8C=EC=9D=B4=EB=B8=94=20?= =?UTF-8?q?=EC=8A=A4=ED=82=A4=EB=A7=88=20=ED=99=95=EC=9D=B8=20=EC=9C=A0?= =?UTF-8?q?=ED=8B=B8=EB=A6=AC=ED=8B=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - INFORMATION_SCHEMA 조회로 컬럼 정보 확인 - SALE_MAIN, SALE_SUB 테이블 구조 검증 - 컬럼명, 데이터타입, NULL 여부 출력 --- backend/check_table_schema.py | 54 +++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 backend/check_table_schema.py diff --git a/backend/check_table_schema.py b/backend/check_table_schema.py new file mode 100644 index 0000000..71432a0 --- /dev/null +++ b/backend/check_table_schema.py @@ -0,0 +1,54 @@ +""" +SALE_MAIN 테이블 컬럼 확인 스크립트 +""" + +import sys +import os +sys.path.insert(0, os.path.dirname(__file__)) + +from db.dbsetup import DatabaseManager +from sqlalchemy import text + +def check_sale_table_columns(table_name): + """테이블의 모든 컬럼 확인""" + db_manager = DatabaseManager() + + try: + session = db_manager.get_session('PM_PRES') + + # SQL Server에서 테이블 컬럼 정보 조회 + query = text(f""" + SELECT + COLUMN_NAME, + DATA_TYPE, + CHARACTER_MAXIMUM_LENGTH, + IS_NULLABLE + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_NAME = '{table_name}' + ORDER BY ORDINAL_POSITION + """) + + columns = session.execute(query).fetchall() + + print("=" * 80) + print(f"{table_name} 테이블 컬럼 목록") + print("=" * 80) + + for col in columns: + nullable = "NULL" if col.IS_NULLABLE == 'YES' else "NOT NULL" + max_len = f"({col.CHARACTER_MAXIMUM_LENGTH})" if col.CHARACTER_MAXIMUM_LENGTH else "" + print(f"{col.COLUMN_NAME:30} {col.DATA_TYPE}{max_len:20} {nullable}") + + print("=" * 80) + print(f"총 {len(columns)}개 컬럼") + print("=" * 80) + + except Exception as e: + print(f"오류 발생: {e}") + finally: + db_manager.close_all() + +if __name__ == '__main__': + check_sale_table_columns('SALE_MAIN') + print("\n\n") + check_sale_table_columns('SALE_SUB')