我已经在我们的测试数据库服务器上运行了 sp_blitz(版本 45)。它抱怨
数据库 [MDS] 具有用于页面验证的 TORN_PAGE_DETECTION。SQL Server 可能更难识别存储损坏并从中恢复。考虑使用 CHECKSUM 代替。
但这是来自微软的数据库。
将页面验证更改为 CheckSum 是否明智?
还是应该等微软发布新版本的MDS?
我正在尝试运行一个脚本,该脚本执行一些工作,包括从列的每一行内的字符串中去除前导两个字符。为此,我正在使用RIGHT()它,当我在 a 中使用它时它工作正常,SELECT..FROM但是当我在 a 中使用相同的代码时UPDATE它失败了
传递给 RIGHT 函数的长度参数无效
为什么它失败了UPDATE但不是SELECT...FROM?
USE JobSight;
DROP TABLE #ReleaseTemp;
SELECT A.MajRelease,
A.MinRelease,
A.Build,
Split.a.value('.', 'VARCHAR(MAX)') AS ReleaseNotes
INTO #ReleaseTemp
FROM
(
SELECT MajRelease,
MinRelease,
Build,
CAST ('<M>' + REPLACE(RelNotes, ';;', '</M><M>') + '</M>' AS XML) AS ReleaseNotes
FROM JobsDB.dbo.ReleaseData
) AS A
CROSS APPLY ReleaseNotes.nodes ('/M') AS Split(a);
UPDATE #ReleaseTemp
SET ReleaseNotes = RIGHT(ReleaseNotes, LEN(ReleaseNotes) - 2);
UPDATE #ReleaseTemp
SET ReleaseNotes = LTRIM(#ReleaseTemp.ReleaseNotes);
SELECT MajRelease, …Run Code Online (Sandbox Code Playgroud) 我正在阅读 Microsoft 文章如何解决“无法生成 SSPI 上下文”错误消息
这两句话暗示,如果我知道域是什么,我应该知道森林是什么,但我不知道。我用谷歌搜索了一下,我发现的所有东西要么不相关(“只见树木不见森林”),要么没有解释该术语。
将 SPN 视为服务器资源中某个实例的域或林唯一标识符。
——
3.检查服务器所属的域和您用来连接的域帐户是否在同一个林中。这是 SSPI 工作所必需的。
考虑以下代码:
DECLARE @db sysname;
DECLARE @filename varchar(260);
DECLARE cur CURSOR LOCAL FORWARD_ONLY STATIC READ_ONLY
FOR
SELECT d.name
FROM sys.databases d;
OPEN cur;
FETCH NEXT FROM cur INTO @db
WHILE @@FETCH_STATUS = 0
BEGIN
SET @filename = 'C:\temp\create_database_' + @db + '.txt';
:setvar c @filename
:out $(c)
PRINT $(c);
FETCH NEXT FROM cur INTO @db
END
CLOSE cur;
DEALLOCATE cur;
Run Code Online (Sandbox Code Playgroud)
我希望在 中创建多个文件C:\temp,每个数据库一个,但没有创建任何文件,并且 SQL Server 没有报告任何错误。
我试过使用 SQLCMD 模式在 SSMS 中运行它,我也试过从 sqlcmd.exe 运行它
我有一张桌子:
CREATE TABLE `p` (
`id` BIGINT(20) unsigned NOT NULL,
`rtime` DATETIME NOT NULL,
`d` INT(10) NOT NULL,
`n` INT(10) NOT NULL,
PRIMARY KEY (`rtime`,`id`,`d`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)
我对此表运行的查询是:
SELECT id, d, SUM(n)
FROM p
WHERE rtime BETWEEN '2012-08-25' AND DATE(now())
GROUP BY id, d;
Run Code Online (Sandbox Code Playgroud)
我explain在一个小表(2 条记录)上运行这个查询,它告诉我它将使用我的主键索引:
id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
1 | SIMPLE | p | range | PRIMARY …Run Code Online (Sandbox Code Playgroud) 我的数据库中有一些无效的视图和函数。
我不确定是什么更改导致这些对象无效,因为很多人都在使用同一个数据库。
如何查看导致视图无效的更改?
我希望自动擦除我们的测试环境,使其在每个冲刺结束时与生产保持一致。
就目前而言,这目前正在通过测试环境获取完整备份并使用移动和替换进行恢复来完成,但这占用了我们拥有的大部分空间。
目的是从头开始创建环境并仅填充所需的表。
我可以使用“右键单击 > 任务 > 生成脚本...”来创建数据库框架。
有没有办法从存储过程中创建该脚本,以便可以用于重新创建数据库
此外,我正在按原样处理这一点,但显然该脚本只会以其当前大小创建数据库,因此一旦生成脚本,就需要修改所有文件大小
为任何帮助干杯
我有一个正在由在未知位置运行的服务更新的表。
我已经检查了所有通常与我的数据库服务器通信的服务器,但它们似乎都没有运行相关服务。
我正在尝试追踪此服务的运行位置,我想知道是否可以查看影响特定表的查询来自何处?
这可能吗?
我创建了一个有一个存储过程TRUNCATE,并INSERT在它的语句,我使用的一个SSRS报告。
我通常只使用作为db_datareaderSSRS 报告成员的帐户,但是此存储过程不会使用只有这些权限的帐户执行。尝试执行存储过程时报如下错误:
找不到对象“table_name”,因为它不存在或您没有权限。
我是否需要使用有db_datawriter成员的帐户来执行此 SP,或者有什么方法可以让我的db_datareader帐户执行它?
我们有一台新的 Windows 2016 服务器,我必须安装 SQL Server 2016 标准版。安装和配置 SQL 服务器后,我会将现有的生产数据库移动到新的数据库服务器。
我可以远程桌面访问服务器以安装 SQL 服务器,但不确定是否需要域服务帐户?我的印象是 SQL 服务器在安装过程中分配的默认服务就足够了。
问题 1:
DB Admin 团队将远程桌面连接到该服务器并使用 SSMS 连接到 SQL 服务器,而不是从他们的本地 SSMS。在这种情况下,我是否必须拥有域服务帐户?
问题2:
DB支持的应用程序将有几百个用户通过网络连接?在这种情况下,默认服务帐户就足够了,还是我必须拥有域服务帐户?
我是数据库管理领域的新手,所以我仍然在为几个概念苦苦挣扎。