bulkcopy fails for temporary tables
Maintainer thường phản hồi trong vòng 1 ngày
@bewithgaurav đang làm issue này rồi.
Từ ngày 6/4/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
bulkcopy fails when trying to populate a temporary table unless
- the table is a ##global temporary table, and
- autocommit is enabled
repro code
import mssql_python
cnxn = mssql_python.connect(
"SERVER=192.168.0.199;"
"DATABASE=test;"
"UID=scott;PWD=tiger^5HHH;"
"TrustServerCertificate=yes;"
)
# cnxn.setautocommit(True)
print(f"{cnxn.autocommit=}")
crsr = cnxn.cursor()
table_name = '#local_temp'
print(f"[{table_name=}]")
crsr.execute(f"CREATE TABLE {table_name} (id int, txt nvarchar(1))")
params = [(1, 'Ώ',), (2, 'π',), (3, 'α',)]
crsr.bulkcopy(table_name, params)
autocommit=False, #local temporary table
cnxn.autocommit=False
[table_name='#local_temp']
Traceback (most recent call last):
File "C:\Users\gord\PycharmProjects\mssql_python_demo\gdt_demo.py", line 22, in <module>
crsr.bulkcopy(table_name, params)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gord\PycharmProjects\mssql_python_demo\.venv\Lib\site-packages\mssql_python\cursor.py", line 2706, in bulkcopy
raise type(e)(str(e)) from None
RuntimeError: Failed to retrieve destination metadata: Sql Error: 208: Class 16: State 0: Invalid object name '#local_temp'. on 5ec209db8c16 in at line 1
autocommit=False, ##global temporary table
cnxn.autocommit=False
[table_name='##global_temp']
Traceback (most recent call last):
File "C:\Users\gord\PycharmProjects\mssql_python_demo\gdt_demo.py", line 22, in <module>
crsr.bulkcopy(table_name, params)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gord\PycharmProjects\mssql_python_demo\.venv\Lib\site-packages\mssql_python\cursor.py", line 2706, in bulkcopy
raise type(e)(str(e)) from None
RuntimeError: Failed to retrieve destination metadata: Timeout Error: Elapsed: deadline has elapsed
autocommit=True, #local temporary table
cnxn.autocommit=True
[table_name='#local_temp']
Traceback (most recent call last):
File "C:\Users\gord\PycharmProjects\mssql_python_demo\gdt_demo.py", line 22, in <module>
crsr.bulkcopy(table_name, params)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gord\PycharmProjects\mssql_python_demo\.venv\Lib\site-packages\mssql_python\cursor.py", line 2706, in bulkcopy
raise type(e)(str(e)) from None
RuntimeError: Failed to retrieve destination metadata: Sql Error: 208: Class 16: State 0: Invalid object name '#local_temp'. on 5ec209db8c16 in at line 1
autocommit=True, ##global temporary table
(works as expected)
additional info
I tried adding UseFMTONLY=Yes and ColumnEncryption=Enabled as suggested in
but they were rejected:
Traceback (most recent call last):
File "C:\Users\gord\PycharmProjects\mssql_python_demo\gdt_demo.py", line 3, in <module>
cnxn = mssql_python.connect(
"SERVER=192.168.0.199;"
...<3 lines>...
"ColumnEncryption=Enabled;"
)
File "C:\Users\gord\PycharmProjects\mssql_python_demo\.venv\Lib\site-packages\mssql_python\db_connection.py", line 46, in connect
conn = Connection(
connection_str, autocommit=autocommit, attrs_before=attrs_before, timeout=timeout, **kwargs
)
File "C:\Users\gord\PycharmProjects\mssql_python_demo\.venv\Lib\site-packages\mssql_python\connection.py", line 240, in __init__
self.connection_str = self._construct_connection_string(connection_str, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gord\PycharmProjects\mssql_python_demo\.venv\Lib\site-packages\mssql_python\connection.py", line 363, in _construct_connection_string
parsed_params = parser._parse(connection_str)
File "C:\Users\gord\PycharmProjects\mssql_python_demo\.venv\Lib\site-packages\mssql_python\connection_string_parser.py", line 271, in _parse
raise ConnectionStringParseError(errors)
mssql_python.exceptions.ConnectionStringParseError: Connection string parsing failed:
Unknown keyword 'columnencryption' is not recognized
- Ngôn ngữ chính
- Python
- Star
- 478
- Fork
- 62
- Merge trung bình
- 3 ngày 1 giờ
- Pull request đã merge (30 ngày)
- 27
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của microsoft/mssql-python
-
area: bulk-copy
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
microsoft/mssql-python#843 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
macOS: encrypted connections fail after Homebrew moved the `openssl` alias to `openssl@4`Có thể đã có người làm @bewithgaurav đã nhận 14 ngày trước. Đang mởarea: packaging-platform bug triage needed
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
microsoft/mssql-python#826 · 2 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bulkcopy PyCore login is closed by SQL Server 2019 while ODBC and Go clients succeed (1.14.0)Có thể làm lại được @bewithgaurav đã nhận 34 ngày trước và không có pull request nào đang mở. Đang mởarea: bulk-copy bug triage done
microsoft/mssql-python#750 · 4 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Announcement: mssql-python is coming to Django through mssql-django 2.0Có thể làm lại được @bewithgaurav đã nhận 41 ngày trước và không có pull request nào đang mở. Đang mởannouncement
microsoft/mssql-python#748 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Connection pool can briefly exceed max_size when pooling is disabled under loadCó thể đã có người làm @bewithgaurav đã nhận 23 ngày trước. Đang mởarea: connectivity-auth bug triage done under development
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 62/100
microsoft/mssql-python#746 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của microsoft/mssql-python
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
onyx-dot-app/onyx#16016 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
black --check exits 0 and prints All done when a multi file run is interruptedCó thể đã có người làm @jiteshgulati đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Non-positive worker counts wait for results without starting workersCó thể đã có người làm @IlyaKhalafi đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày