Sql server 如何确定SQL Server 2008 R2视图定义的类型

Sql server 如何确定SQL Server 2008 R2视图定义的类型,sql-server,sqlalchemy,Sql Server,Sqlalchemy,今天,我使用sqlalchemy 0.6(使用get_view_definition())在数据库中浏览视图定义,遇到了一个大于4000个字符的视图定义。MS似乎说()不应该返回。如果您要求提供视图的设计,MS SQL Server Management Studio将展示整个过程(至少开头和结尾看起来是正确的)。sqlalchemy返回一个被截断为4000个字符的字符串(boo,hiss)。我如何询问数据库希望为这段数据返回什么类型的数据,而不是依赖于我怀疑的过期文档。我假设类型可能是varc

今天,我使用sqlalchemy 0.6(使用get_view_definition())在数据库中浏览视图定义,遇到了一个大于4000个字符的视图定义。MS似乎说()不应该返回。如果您要求提供视图的设计,MS SQL Server Management Studio将展示整个过程(至少开头和结尾看起来是正确的)。sqlalchemy返回一个被截断为4000个字符的字符串(boo,hiss)。我如何询问数据库希望为这段数据返回什么类型的数据,而不是依赖于我怀疑的过期文档。我假设类型可能是varchar。我只想验证一下。

可以从视图中检索对象定义,包括视图定义,或者使用函数。这包括正确的
NVARCHAR(MAX)
类型,该类型包含对象的不受信任的定义


其他向后兼容视图,如或包含
NVARCHAR(4000)
类型的列,根据定义,此类类型必须在前4k个字符后截断对象定义。许多跨平台工具将依赖于
信息模式
视图,也许sqlalchemy也会这样做。

可以从视图或使用函数检索对象定义,包括视图定义。这包括正确的
NVARCHAR(MAX)
类型,该类型包含对象的不受信任的定义


其他向后兼容视图,如或包含
NVARCHAR(4000)
类型的列,根据定义,此类类型必须在前4k个字符后截断对象定义。许多跨平台工具将依赖于
信息模式
视图,也许sqlalchemy也会这样做。

这些只是信息模式视图。你确定sqlalchemy就是这么用的吗?这当然不是SSMS所使用的。谢谢雷姆斯和约翰的回复。如果您查看由sqlalchemy生成的SQL(.6,已经尝试了.7版本),那么它使用的是模式视图中的信息。我质疑它是否选择返回被破坏的数据。但现在我有了一种解决方法,这些只是模式视图中的信息。你确定sqlalchemy就是这么用的吗?这当然不是SSMS所使用的。谢谢雷姆斯和约翰的回复。如果您查看由sqlalchemy生成的SQL(.6,已经尝试了.7版本),那么它使用的是模式视图中的信息。我质疑它是否选择返回被破坏的数据。但现在我有办法解决这个问题。