在 MS SQL Server 上使用 sqlalchemy 定义 varbinary(max) 列

Mar*_*all 2 sql-server sqlalchemy

我正在使用 SQLAlchemy 查询 SQL Server 数据库,并且需要将一列转换为 varbinary(max)。我正在努力解决的问题是“最大”部分。我可以让演员表适用于任何实际数字(比如 varbinary(20)),但我找不到如何让它适用于 varbinary 列的“最大”大小。

任何指针?链接?解决方案?

问候, 马克

zzz*_*eek 5

我希望你们都注意到我们在自定义编译的主要文档中几乎有这个确切的配方,没有任何猴子补丁,在这里:

http://www.sqlalchemy.org/docs/reference/ext/compiler.html?highlight=compiler#changed-compilation-of-types

@compiles(String, 'mssql')
@compiles(VARCHAR, 'mssql')
def compile_varchar(element, compiler, **kw):
    if element.length == 'max':
        return "VARCHAR('max')"
    else:
        return compiler.visit_VARCHAR(element, **kw)

foo = Table('foo', metadata,
    Column('data', VARCHAR('max'))
)
Run Code Online (Sandbox Code Playgroud)