sql-server - SQL INFORMATION_SCHEMA.VIEWS
问题描述
我想让 2020 年包含所有视图内容的 2019 年,但我对长视图有疑问。视图定义列是否有字符限制?因为据我所知,代码太长的视图存在问题。有补救措施吗?
declare @Icerik varchar(max)
declare pcursor cursor
for
SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME like '%2019%'
open pcursor
fetch next from pcursor into @Icerik
while @@FETCH_STATUS = 0
begin
set @Icerik = replace(@Icerik,'2019','2020')
exec (@Icerik)
fetch next from pcursor into @Icerik
end
close pcursor
deallocate pcursor
解决方案
视图定义列是否有字符限制?
VIEW_DEFINITION nvarchar(4000) 如果定义的长度大于 nvarchar(4000),则此列为 NULL。否则,此列是视图定义文本。
我建议使用sys.sql_modules
definition nvarchar(max) 定义此模块的 SQL 文本。该值也可以使用 OBJECT_DEFINITION 内置函数获得。
或者SELECT OBJECT_DEFINITION(OBJECT_ID('schema.view_name'))
推荐阅读
- php - 未定义变量:laravel 中的产品
- r - stargazer可以同时输出SE和CI吗?
- flutter - 运行会话结束后不会保留对应用所做的更改
- flutter - Flutter按钮新主题copyWith不会改变颜色
- node.js - 对于等待(... of ...)不起作用。Babel 呈现环境,节点 v10
- java - Hibernate HQL select 与 where order by query 不同
- r - R:连接到未受保护的访问数据库时提示凭据对话框
- php - PHP 和 Laravel | 在 GroupBy 之后使用 OrderBy
- elasticsearch - 如何更改这些映射以具有嵌套字段?
- maven - rtMavenRun() Artifactory 插件不使用在 Jenkins 中配置的凭据