【问题标题】:SQL 2012 - Any way to pull up a CREATE VIEW configuration through a query?SQL 2012 - 有什么方法可以通过查询提取 CREATE VIEW 配置?
【发布时间】:2015-05-13 13:05:55
【问题描述】:

很抱歉之前提出的问题不正确,但推荐的“已回答”问题不是我想要的。

所以我正在使用以下内容:

SELECT definition, uses_ansi_nulls, uses_quoted_identifier, is_schema_bound
FROM sys.sql_modules
WHERE object_id = OBJECT_ID('dbName.viewName')

但我没有得到我认为我会得到的信息。例如,在这个创建视图中:

CREATE VIEW [dbo].[vSample]
AS
SELECT dbo.[Docu].docID
FROM dbo.AcctK INNER JOIN
     dbo.[Docu] ON dbo.AcctK.docID = doc.[Docu].docID
WHERE (dbo.AcctK.ix = 3) AND (dbo.AcctK.val IN ('SAMPLE1', 'SAMPLE2',
      'SAMPLE3', 'SAMPLE4', 'SAMPLE5'))
GO

我想通过查询检索所有 SAMPLE 字符串(即 SAMPLE1、SAMPLE2...)

【问题讨论】:

标签: sql sql-server-2012 views


【解决方案1】:

人物

dbName.viewName

对 SQL 编译器没有任何意义。传递给函数的参数必须是字符串,采用以下形式之一:

<objectName>
<schemaName>.<objectName>
<databaseName>.<schemaName>.<objectName>

例如,

SELECT definition, uses_ansi_nulls, uses_quoted_identifier, is_schema_bound
FROM sys.sql_modules
WHERE object_id = OBJECT_ID('dbo.viewName')

顺便提一下,这个表格

SELECT definition, uses_ansi_nulls, uses_quoted_identifier, is_schema_bound
FROM sys.sql_modules
WHERE object_id = OBJECT_ID('MyDatabase.dbo.viewName')

应该可以工作,但由于某种原因,它刚刚在 SQL 2008 中对我不起作用。

【讨论】:

  • @Phillip Kelley,谢谢你,它确实有效,但没有产生我希望的结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-02
  • 2023-03-18
  • 2019-07-06
相关资源
最近更新 更多