小编mar*_*c_s的帖子

获取整个 SQL Server 数据库统计信息的最有效方法

我要做的是查看我们的数据库并锁定所有auto-shrink设置,以及处理哪些数据库/表高度碎片化。

是否有我可以运行的特定脚本来获得每个数据库的好主意?

我知道我可以在每个表级别(至少 SQL Server 2005)运行以下内容:

DBCC SHOWCONTIG ('DB.TABLE');
Run Code Online (Sandbox Code Playgroud)

但是我可以运行什么来显示数据库中的所有表?

谢谢

sql-server-2005 sql-server

8
推荐指数
1
解决办法
364
查看次数

SQL Server:事务复制计算列

我是事务复制订阅的订阅者。我无法控制出版商。

我已阅读以下有关发布数据库架构更改的文章:

对发布数据库进行架构更改

但是,我正在尝试更改订阅端的架构(如果可能)。我想知道事务复制是否支持向订阅者表添加持久计算列。

我更喜欢这个解决方案,而不是为每个需要计算值的表添加一个新视图。

sql-server transactional-replication

8
推荐指数
2
解决办法
2140
查看次数

SQL Server 中的 MDF 和 LDF 内容

比方说,我有一个单一的数据库.mdf.ldf文件。

数据库已分离,没有事务并且 SQL Server 已停止。

我假设所有数据都已经在.mdf文件中了?

.ldf文件基本上是空的?如果.ldf文件不为空,它包含什么?

如果我删除.ldf文件并手动创建一个.ldf与以前相同名称的新的 0 字节长文件,我是否能够再次附加数据库而不会丢失数据?

sql-server sql-server-2008-r2

8
推荐指数
1
解决办法
2250
查看次数

SQL Server 存储过程的条件编译

简短版本:是否有某种方法可以使用 SQL Server Data Tools for Visual Studio 2010 有条件地编译 SQL Server 数据项目中的 TSQL 代码块?

我在 Visual Studio 2010 中使用 SQL Server Data Tools 来处理实验性 SQL Server Express 数据库。如果一切顺利,最终目标将是企业 SQL Server 平台。我在一个机器上有一个 2008 年的实例,另一个在另一个机器上有一个 2012 年的实例,因为我的公司也正在从 2008 年到 2012 年迁移许多企业数据库。

在我使用过的其他编程语言中,预处理器指令可以轻松地有条件地编译代码库的一部分。最常见的用途是在受限部分为不同平台使用不同的代码,或者从发布版本中排除调试输出代码

在我正在处理的一些存储过程中,这两者都可能非常有帮助。有这样的东西吗?我知道我可以sqlcmd在部署期间使用变量来换出特定的值,但我无法弄清楚如何使用它来包含或排除后续的代码块。

例子:

#IF $(DebugVersion) = 'True'
    -- A bunch of useful PRINTs and what not
#ELSE
    SET NOCOUNT ON
#ENDIF

#IF $(SSVersion) = '2012'
    SET @pretty_date = FORMAT(@some_date, …
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures

8
推荐指数
1
解决办法
3206
查看次数

SQL Server 2008 和扩展属性

在 SQL Server 中,你们使用扩展属性做什么?一些文章和博客建议将它们用于数据库及其对象的自我记录,但我看不到它被正确使用......大多数人都忽略了这一点吗?

sql-server-2008 sql-server

8
推荐指数
1
解决办法
1102
查看次数

默认关闭 CHECK_POLICY

我们从 SQL Server 2000 迁移到 SQL Server 2005。我无法更改的客户端软件创建了一个没有选项的用户

CHECK_POLICY = OFF;
Run Code Online (Sandbox Code Playgroud)

创建用户后,我必须运行命令

ALTER LOGIN username WITH CHECK_POLICY = OFF;
Run Code Online (Sandbox Code Playgroud)

按照建议禁用该策略,我不能。

是否可以禁用CHECK_POLICY没有她的CREATE LOGIN用户创建的默认值CHECK_POLICY = OFF

sql-server-2005 sql-server

8
推荐指数
1
解决办法
5573
查看次数

如何从另一个存储过程中的存储过程访问结果集?

我有一个重要的SELECT声明,我不想写两次(标准软件开发注意事项)。我想在两个存储过程中使用结果。我在想象这样的事情:

CREATE PROCEDURE consumerProcedureA()
BEGIN
    CALL supplierProcedure();
    -- ** insert magic here **
END;

CREATE PROCEDURE consumerProcedureB()
BEGIN
    CALL supplierProcedure();
    -- ** insert magic here **
END;

CREATE PROCEDURE supplierProcedure()
BEGIN
    SELECT field1, field2, field3, MESSYEXPR AS field4
    FROM (complicated sub-SQL query) -- blah blah blah
    ;
END;
Run Code Online (Sandbox Code Playgroud)

授予您,我可以创建一个视图来捕获公共查询,但是有没有办法让调用存储过程访问并处理被调用存储过程返回的结果集?

mysql stored-procedures

8
推荐指数
1
解决办法
2万
查看次数

如何更改数据库的 dbo 用户的登录名?

我刚刚在 Win8.1 的加入域的 VM 实例上成功安装了 SQL Server 2014 Express。

在我运行的安装过程中,我DOMAIN\Admin接受了将当前用户添加为 SQL 管理员的默认配置。但是,在完成后重新考虑后,我想使用该DOMAIN\DbAdmins组而不是域上的单个用户。

一切都很好。创建组,将其添加到 SSMS 中 SQL Server 的安全节点,将其置于 SysAdmin 角色中,授予“连接 SQL”安全性,然后我们就可以关闭并运行了——对吗?

没那么快。

安装程序映射DOMAIN\Admin到这两个数据库上的 dbo 用户:

  • 报表服务器
  • 报表服务器临时数据库

当然,dbo 不能被修改或删除。

我想在不卸载和重新安装 Reporting Services 的情况下执行此操作。有可能这样做吗?

security sql-server users logins sql-server-2014

8
推荐指数
1
解决办法
3万
查看次数

创建 SQL Server 性能基线监控

为了获得概览和可比较的数据,我当前的任务是创建一个性能基线,以获取有关不同生产 SQL Server 实例的一些数据。

我的想法是:

  • 我想使用几个 DMV
  • 我想包括一个探查器跟踪(包括执行计划)
  • 我想包括性能数据

所以我试图实现的是一个通用的性能监控可启动和可停止(也可调度)返回:

  1. 确定正在进行的性能优化任务是否成功所需的所有信息

  2. 几个汇总的简单数字有助于形象化长期进展……尤其是。用于管理;-)

  3. 探查器跟踪中的可重新执行执行计划,以通过索引优化任务比较各个队列的更改和改进

我发现了一些描述性能基线创建的信息。它们中的大多数要么非常复杂,要么只关注所需的性能指标之一(主要是性能数据)。

最匹配的示例/描述如下:为 SQL Server 创建性能基准

问题是:

有没有人有以快速可行的方式创建这种性能监视器的经验?

performance monitoring sql-server

8
推荐指数
3
解决办法
5899
查看次数

如何在TSQL中没有固定列的情况下进行透视?

我正在努力旋转一个非常简单的表格。网络上的所有示例和教程,都不是我要找的,所以也许你们可以在这里帮助我(我必须说我的 T-SQL 知识不是那么好......)

我来解释一下情况:

我有一张桌子卡车

CREATE TABLE [dbo].[Trucks](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](100) NOT NULL) 

SET IDENTITY_INSERT [dbo].[Trucks] ON 
INSERT [dbo].[Trucks] ([Id], [Name]) VALUES (1, N'AAA-BBB')
INSERT [dbo].[Trucks] ([Id], [Name]) VALUES (2, N'AAA-CCC')
INSERT [dbo].[Trucks] ([Id], [Name]) VALUES (3, N'BBB-WWW')
INSERT [dbo].[Trucks] ([Id], [Name]) VALUES (4, N'SKL-POL')
INSERT [dbo].[Trucks] ([Id], [Name]) VALUES (5, N'QAS-ZSD')
SET IDENTITY_INSERT [dbo].[Trucks] OFF 
Run Code Online (Sandbox Code Playgroud)

每辆卡车都有一定数量的隔间。每个隔间都有名称和容量

CREATE TABLE [dbo].[Compartments](
    [Id] [int]  IDENTITY(1,1) NOT NULL,
    [TruckId] [int] NOT NULL,
    [Compartment] [nvarchar](50) NOT NULL,
    [Capacity] [bigint] NULL) …
Run Code Online (Sandbox Code Playgroud)

sql-server pivot t-sql

8
推荐指数
1
解决办法
2万
查看次数