这是针对系统操作员(或之前经历过这种经历的人)的一个问题。
我的公司希望在生产中的现有 SQL Server 机器上分配额外的磁盘空间。我们想知道扩展卷(磁盘管理中的“扩展卷...”)是否可以在线完成,或者是否需要关闭 SQL Server 服务。
有什么理由应该停止 SQL Server 服务来执行此操作,还是可以在白天执行此操作?
以防万一系统规格相关。这是一个运行 Windows 2012 R2 和 SQL Server 2008 R2 的真实机器(无虚拟化)。
谢谢!
你们可能知道,SQL Server 没有提供开箱即用的解决方案来导出为数据库中的每个元素声明的所有安全相关语句(在数据库级别和对象级别)
我说的是提供这些信息的能力
您可能会认为 SQL Server 必须有类似的东西,但 SQL Server 导出向导或因右键单击对象而生成的各种脚本都不会捕获此信息。
我在网上看到许多不同的“可能的解决方案”使用人们慷慨发布的非策划脚本,但由于我必须 100% 确定所有安全信息都被捕获,因此我不能完全依赖这些脚本。
我可以选择使用这些作为自己编写一些东西的起点,但我讨厌必须重新发明轮子来满足您认为很多人可能有的要求。
是否有人提供的工具(作为 SQL Server 产品的一部分或第三方工具)可以可靠地为您提供此信息?
或者至少,是否有大多数人会同意“将完成这项工作”的社区支持脚本?
谢谢!
快速而简单...为什么当我尝试检索临时表中某一列的统计信息时此 sp 失败?
CREATE PROCEDURE dbo.Demo
AS
BEGIN
SET NOCOUNT ON
-- Declare table variable
CREATE TABLE #temp_table (ID INT)
DECLARE @I INT = 0
-- Insert 10K rows
WHILE @I < 100
BEGIN
INSERT INTO #temp_table VALUES (@I)
SET @I=@I+1
END
-- Display all rows and output execution plan (now the EstimateRow is just fine!)
SELECT * FROM #temp_table
-- Is the object there
SELECT OBJECT_ID('tempdb..#temp_table')
-- How about statistics
DBCC SHOW_STATISTICS ('tempdb..#temp_table', 'id')
END;
Run Code Online (Sandbox Code Playgroud)
我不明白,我收到一条消息说没有在列 id 上创建统计信息
Could …Run Code Online (Sandbox Code Playgroud) 这是我需要用一些 T-SQL Magic 解决的难题,我尝试过但失败了。
这是其中之一,在我想到实际解决方案之前,我认为我可以在 3 分钟内使用一些 T-SQL 解决,但是当“橡胶遇到道路”时,我无法在脑海中想象正确的运算符来实现这个逻辑。
我想知道 Stack Exchange 社区中是否有人可以找到一个优雅的解决方案。我想通过使用临时表或游标的 3 或 4 个查询的组合,我可以找到解决方案,但它不会基于 SET...
我有一张看起来像这样的桌子(或多或少......)
CREATE TABLE Computers (
ID int IDENTITY(1,1),
ComputerName varchar(255),
OS varchar(255),
AppName varchar(255),
AppVersion varchar(10)
)
Run Code Online (Sandbox Code Playgroud)
因此,每一行都有一个计算机名称、一个操作系统值(可以是 Windows 7 或 Windows 10),然后是应用程序的描述(例如 AppName = "Notepad++", AppVersion = "7.5.6")
ComputerName | OS | AppName | AppVersion
Computer 1 | Windows 7 | App 1 | 1.0
Computer 1 | Windows 7 | App 2 | 1.0
Computer 1 | Windows 7 | …Run Code Online (Sandbox Code Playgroud) sql-server ×3
disk-space ×1
export ×1
hardware ×1
security ×1
select ×1
statistics ×1
t-sql ×1