我有一个名称" _report_territories "
如果我在查询下面运行
EXEC sp_HelpText '_report_territories'
结果显示如下屏幕
问题:
如何在" 创建视图[dbo]之后获取视图查询。[_ report_territories] AS " ?
任何帮助将不胜感激。
感谢。
答案 0 :(得分:1)
将sp_HelpText
的结果放在临时表中,而不是将其作为字符串并获得所需内容
DECLARE @t TABLE (
[Text] nvarchar(max)
)
DECLARE @sql nvarchar(max) =''
INSERT INTO @t
EXEC sp_HelpText 'vCities'
SELECT @sql =@sql+ [Text]
FROM @t
SELECT SUBSTRING(@sql,1,CHARINDEX('AS',@sql)+ LEN('AS'))
会给你:
CREATE View vCities AS
注意:如果视图名称包含AS
答案 1 :(得分:0)
<强>解决方案:强>
DECLARE @viewDefiniton nvarchar(max)
DECLARE @viewName nvarchar(max)='_report_territories'
DECLARE @indexOfViewName int
DECLARE @firstASindex int
SELECT @viewDefiniton = VIEW_DEFINITION FROM INFORMATION_SCHEMA.Views where TABLE_NAME = @viewName
SELECT @indexOfViewName = CHARINDEX(@viewName,@viewDefiniton)
SELECT @viewDefiniton = SUBSTRING(@viewDefiniton, @indexOfViewName + LEN(@viewName), LEN(@viewDefiniton))
SELECT @firstASindex = CHARINDEX('as',LOWER(@viewDefiniton))
SELECT @viewDefiniton = SUBSTRING(@viewDefiniton, @firstASindex + 2, LEN(@viewDefiniton))
SELECT @viewDefiniton