- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的测试 SQL Server 2014 安装中,我正在“清理”master 数据库。
使用以下命令,我检查了哪些用户对象:
SELECT
'DROP ' +
CASE
WHEN [sys].[all_objects].type IN ('AF','FN','FS','FT','IF','TF') THEN 'FUNCTION '
WHEN [sys].[all_objects].type IN ('D','C','F','PK','UQ') THEN 'CONSTRAINT '
WHEN [sys].[all_objects].type IN ('IT','S','U') THEN 'TABLE '
WHEN [sys].[all_objects].type IN ('P','PC','RF','X') THEN 'PROCEDURE '
WHEN [sys].[all_objects].type IN ('TA','TR') THEN 'TRIGGER '
WHEN [sys].[all_objects].type = 'R' THEN 'RULE '
WHEN [sys].[all_objects].type = 'SN' THEN 'SYNONYM '
WHEN [sys].[all_objects].type = 'TT' THEN 'TYPE '
WHEN [sys].[all_objects].type = 'V' THEN 'VIEW '
END +
SCHEMA_NAME(sys.[all_objects].[schema_id]) + '.' + OBJECT_NAME(object_id) + '; ' as [Command],
OBJECT_NAME(object_id) as [ObjectName],
[sys].[all_objects].[type_desc] as [TypeDesc],
[sys].[all_objects].[type] as [Type],
SCHEMA_NAME(sys.[all_objects].[schema_id]) as [Schema]
FROM
sys.[all_objects] WITH (NOLOCK)
WHERE SCHEMA_NAME(sys.[all_objects].[schema_id]) like '%dbo%'
其中一个结果是 View spt_values。
Command | ObjectName | TypeDesc | Type | Schema
------------------------|------------|----_-----|------|-------
DROP VIEW dbo.spt_values; spt_values VIEW V dbo
因为它不是我所知道的 View 之一,所以我删除了它(连同其他对象)。
那天晚些时候,我想在 SSMS 2016 中检查数据库的属性,结果出现以下错误:
经过一番搜索,我发现我可以使用脚本 u_tables.sql(位于您服务器上的 SQL Server 安装文件夹中)重新创建丢失的 View 。来自这里的信息:https://ashishgilhotra.wordpress.com/tag/u_tables-sql/
该脚本中用于创建 View 的代码如下:
create view spt_values as
select name collate database_default as name,
number,
type collate database_default as type,
low, high, status
from sys.spt_values
go
EXEC sp_MS_marksystemobject 'spt_values'
go
grant select on spt_values to public
go
在查看代码时,我已经怀疑它能否工作,因为在任何地方都找不到 sys.spt_values 表。
正如预期的那样,我得到了错误
Msg 208, Level 16, State 1, Procedure spt_values, Line 6
Invalid object name 'sys.spt_values'.
在我的另一台装有 SQL Server 2008 的服务器上,有一个表 master.dbo.spt_values(但没有 View )!
经过更多的搜索,我发现我可以创建一个同名的表。链接在这里https://www.mssqltips.com/sqlservertip/3694/fix-invalid-object-name-masterdbosptvalues-when-viewing-sql-server-database-properties/
现在我用另一个 SQL Server 2014 安装的值创建了一个表,一切似乎又恢复正常了。
但是,它不 正确!
当我用这个命令在测试服务器上检查新创建的对象时
select [name] , [type], [type_desc]
from sys.objects
where name like 'spt_v%'
它显示了一个 user_table 对象。在我的另一台服务器上,它显示了一个 View ...
所以,我的问题是:如何创建从表 spt_values 获取数据的 View spt_values?
最佳答案
好吧,经过一番折腾,我找到了解决方案..
表 sys.spt_values 位于资源数据库 (mssqlsystemresource) 中。只有在单用户模式下启动 SQL 服务时才能访问此数据库。
要重新创建 View ,我必须执行以下步骤:
2.以单用户模式启动SQL服务
打开 DOS 命令提示符并使用开关 -m 启动 sqlservice
sqlservr.exe -sSQLT01 –m
只连接查询窗口,不连接对象资源管理器窗口。该服务只接受一个连接!如果有问题,您可以在服务运行的DOS窗口中看到。
因为我在 master 数据库上创建了一个表 spt_values,所以我必须先删除它
use master
go
drop table dbo.spt_values
5. 创建 View
现在我终于可以创建 View dbo.spt_values,它指向表 sys.spt_values
use master
go
create view spt_values as
select name collate database_default as name,
number,
type collate database_default as type,
low, high, status
from sys.spt_values
go
EXEC sp_MS_marksystemobject 'spt_values'
go
grant select on spt_values to public
go
6. 检查 dbo.spt_values 对象
use master
select schema_name(schema_id), object_id('spt_values'), *
from sys.objects
where name like 'spt_v%'
现在应该显示一个 View
只是为了好玩...您现在可以查询资源数据库中的表 sys.spt_values
use mssqlsystemresource
Select * from sys.spt_values
并且可以查询master数据库中的 View dbo.spt_values
use master
Select * from dbo.spt_values
8. 重启服务
您现在可以在 SQL 服务运行的情况下退出 DOS 窗口并启动 SQL 服务。或者你只是重启整个服务器
希望这篇文章对以后的其他人有帮助
关于sql-server-2014 - SQL Server 2014 : Re-Create System view master. dbo.spt_values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43255427/
根据文档,“|”可用于创建匹配任一由“|”分隔的模式的正则表达式。 我正在尝试使用以下内容来查看 moves 是否包含与“UP”“DOWN”“LEFT”“RIGHT”之一匹配的字符串: moves =
这个问题在这里已经有了答案: What is the difference between re.search and re.match? (8 个回答) 1年前关闭。 来自 regex docs它说
谁能告诉我是否可以组合像 re.IGNORECASE 这样的标志, re.MULTILINE和 re.DOTALL正则表达式匹配? r = re.compile(regex, re.IGNORECAS
这个问题在这里已经有了答案: Python re.sub with a flag does not replace all occurrences (3 个答案) 关闭 6 年前。 为什么这符合预期
提前致谢。我的问题是: 我有一段 Python 代码,我在其中尝试使用“os.walk,re and re.findall ip”来尝试在多个文件中查找所有 ip 地址,例如: file1:192.1
在演示 Python 的正则表达式功能时,我编写了一个小程序来比较 re.search()、re.findall() 和 re 的返回值.finditer()。我知道 re.search() 每行只会
我有一台运行 Lion 和 Python 2.7.1 的 Mac。我注意到 re 模块中有一些非常奇怪的东西。如果我运行以下行: print re.split(r'\s*,\s*', 'a, b,\n
在 python 中,re.search() 检查字符串中任何位置的匹配项(这是 Perl 默认执行的操作)。 那么,为什么我们不像在 Ex(2) 中那样在 Ex(1) 中得到 'ABBbbb' 的输
我正在尝试从存储在光盘上的 HTML 文档中创建单词列表。当我尝试拆分单词并将它们添加到我的单词向量中时,我最终陷入了困惑。 def get_word_vector(self): line =
所以我尝试只打印月份,当我使用时: regex = r'([a-z]+) \d+' re.findall(regex, 'june 15') 它打印:六月但是当我尝试对这样的列表执行相同操作时: re
我正在学习 Python 的正则表达式。下面有两个略有不同的 re.search() 函数。唯一的区别是我在'}'之前添加了一个空格。任何人都可以解释导致结果差异的原因吗?谢谢! 我的代码: impo
我被难住了。我正在编写 Python 3.6.2,使用 PyCharm 作为我的 IDE。以下脚本片段说明了我的问题: def dosubst(m): return m.group() + "
这个问题在这里已经有了答案: Python re.search (2 个答案) 关闭 9 年前。 我正在尝试从 Hackerrank 的问题中解决这个问题。这是一个机器学习问题。最初,我试图从语料库
请解释一下为什么使用 re.find 和 re.sub 会得到不同的结果 我解析的字符串: GRANT USAGE ON *.* TO 'testuser'@'10.10.10.10' IDENTIF
为什么re.match返回的是None对象,而类似的re.findall返回的是非空结果? 我正在解析电子邮件主题。有问题的是 subject = "=?UTF-8?B?0JLQsNGI0LUg0YH
问题第 1 部分 我得到了这个文件 f1: George Washington Joe Taylor 我想重新编译它,它看起来像这样 f1:(带空格) George Washington Joe
python正则表达式模块简介 Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。Python 1.5之前版本则是通过 regex 模块提供 Emacs 风格的
我的字符串看起来像“Billboard Bill SpA”。我想要一个删除 SpA 的正则表达式,但前提是它前面有一个大写单词。我使用的正则表达式是“[A-Z][a-z]*\s(SpA)”。如果我使用
我有一个 str,我想获取单引号内的子字符串 ('): line = "This is a 'car' which has a 'person' in it!" 所以我用了: name = re.fi
这个问题在这里已经有了答案: Difference between regular expression modifiers (or flags) 'm' and 's'? (3 个答案) Pyth
我是一名优秀的程序员,十分优秀!