2011-02-19 49 views
0

我当前正在使用sqlalchemy 0.6(使用get_view_definition())遍历数据库中的视图定义,并且遇到大于4000个字符的视图定义。 MS似乎说(Information Schema Views for VIEWs),不应该返回。如果您要求设计视图,MS SQL Server Management Studio将显示整个事情(至少在开始和结束时看起来是正确的)。 sqlalchemy返回一个截断为4000个字符的字符串(boo,hiss)。我怎么能问这个数据库它想要为这段数据返回什么类型,而不是依赖于我怀疑是过时的文档。我假设这个类型可能是varchar。我只想验证一下。如何计算SQL Server 2008 R2视图定义的类型

+0

这些只是INFORMATION_SCHEMA视图。你确定这是什么sqlalchemy使用?这当然不是SSMS所使用的。 – 2011-02-19 01:48:58

回答

3

可以从sys.sql_modules视图或使用OBJECT_DEFINITION函数检索对象定义(包括视图定义)。这包括正确的NVARCHAR(MAX)类型,其中包含对象的未截断定义。像sys.syscommentsINFORMATION_SCHEMA.VIEWS

其他向后兼容性视图包含NVARCHAR(4000)类型和这种类型的列,根据定义,必须截断后第一个4K字符对象定义。许多跨平台工具将依赖于INFORMATION_SCHEMA视图,也许sqlalchemy也是如此。

相关问题