小编mar*_*c_s的帖子

如何在 SQL Server 中查询上次还原日期?

是否有 T-SQL 查询显示某个数据库的上次还原日期时间?

sql-server-2008 sql-server restore

87
推荐指数
3
解决办法
25万
查看次数

如何在 SQL Server 2008 中强制删除数据库

我正在尝试强制删除数据库,但是在删除数据库后,当我尝试重新创建数据库时,出现错误

无法创建文件 C:\Program Files.....[databasename].mdf 因为它已经存在

这是我强制删除数据库的查询

Use master;
ALTER database [databasename] set offline with ROLLBACK IMMEDIATE;
DROP database [databasename];
Run Code Online (Sandbox Code Playgroud)

我明白,上面的查询正在删除数据库,但它没有删除.ldf.mdf文件。如何彻底删除数据库?

正常查询

Drop database [databasename] ; //deletes the database completely, including the ldf and mdf's.
Run Code Online (Sandbox Code Playgroud)

如何强制删除数据库,同时删除.mdf.ldf文件?

sql-server-2008 sql-server

75
推荐指数
1
解决办法
16万
查看次数

写 varchar 和 nvarchar 之间的区别

目前在我们的 SQL Server 2012 数据库中,我们正在使用varchar,我们想改变它nvarchar。我已经生成了一个脚本来做到这一点。

我的问题是 SQL Server 写入varchar列的方式与写入列的方式有什么不同吗?nvarchar列的吗?我们有一些我很关心的后端程序。

编辑:
不确定这是否有帮助,但这些列没有索引、f/k 或约束。

sql-server varchar

65
推荐指数
3
解决办法
25万
查看次数

与同一数据库的 .bak 文件相比,为什么 .bacpac 文件如此之小?

我一直在做我的SQL Server 2014 Express数据库的备份导入到其他服务器,发现两者之间的文件大小的差异.bacpac.bak

为什么一个.bacpac文件比.bak同一个数据库的文件那么小?

感谢您的任何见解!

sql-server backup export import

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

集群与事务复制与可用性组

假设您需要确保依赖 SQL Server 2012 作为其数据库后端的应用程序全天候可用,即使一台服务器出现故障。

作为开发人员而不是 DBA,我很难理解何时使用哪种场景来实现故障转移/高可用性:

  • Windows 故障转移群集中的两台(或更多)服务器,SQL Server 作为群集实例
  • 通过事务复制保持最新的两个(或更多)SQL Server 实例
  • SQL Server 可用性组中的两个(或更多)SQL Server,以同步提交模式配置

这些场景中的哪一个适用于什么样的工作负载,以及这些场景可以处理什么样的故障/中断?它们甚至具有可比性/可交换性吗?

sql-server clustering failover availability-groups transactional-replication

49
推荐指数
4
解决办法
4万
查看次数

为什么 SQL Server 消耗更多的服务器内存?

SQL Server 占用了我服务器 RAM 的 87.5%。这最近造成了很多性能瓶颈,例如缓慢。我研究了这个问题。我可以在 Internet 上找到的一种常见解决方案是设置 SQL Server 的最大限制。这已经完成并且获得了很大的改进。我想知道为什么如果没有设置最大内存值为什么 SQL Server 不断消耗资源

sql-server memory sql-server-2008-r2

41
推荐指数
3
解决办法
25万
查看次数

ISO 周与 SQL Server 周

好的,所以我有一份报告进行了本周与上周的比较,我们的客户注意到他们的数据是“时髦的”。经过进一步调查,我们发现它没有按照 ISO 标准正确运行数周。我将此脚本作为测试用例运行。

SET DATEFIRST 1
SELECT DATEPART(WEEK, '3/26/13')
    , DATEPART(WEEK, '3/27/12')
    , DATEPART(WEEK, '3/20/12')
    , DATEPART(WEEK, '1/2/12')
SELECT DATEPART(ISO_WEEK, '3/26/13')
    , DATEPART(ISO_WEEK, '3/27/12')
    , DATEPART(ISO_WEEK, '3/20/12')
    , DATEPART(ISO_WEEK, '1/2/12')
Run Code Online (Sandbox Code Playgroud)

运行时我得到了这些结果。

结果集

我认为这很奇怪,所以我做了更多的挖掘,发现 SQL Server 将 1 月 1 日计算为一年的第一周,而 ISO 将 1 月的第一个星期日计算为一年的第一周。

这个问题最终有两个方面。问题1 这是为什么?问题 2 有什么方法可以改变这一点,这样我就不必修改我的所有代码以ISO_Week在任何地方使用?

sql-server-2008 sql-server

34
推荐指数
1
解决办法
5万
查看次数

使用 sp_ 启动用户存储过程的名称仍然错误吗?

我的一位同事在我们的 SQL Server 2008 R2 数据库中命名了一个存储过程sp_something。看到这里,我立刻想:“那是错的!” 并开始在我的书签中搜索这篇解释错误原因的在线文章,以便我可以向我的同事提供解释。

在文章(由Brian Moran撰写)中解释说,给存储过程一个sp_前缀会使 SQL Server 查看主数据库以获取编译计划。因为sp_sproc不驻留在那里,SQL Server 将重新编译该过程(并且需要一个排它编译锁,导致性能问题)。

文章中给出了以下示例以显示两个程序之间的区别:

USE tempdb;
GO

CREATE PROCEDURE dbo.Select1 AS SELECT 1;
GO

CREATE PROCEDURE dbo.sp_Select1 AS SELECT 1;
GO

EXEC dbo.sp_Select1;
GO

EXEC dbo.Select1;
GO
Run Code Online (Sandbox Code Playgroud)

您运行它,然后打开 Profiler(添加存储过程 ->SP:CacheMiss事件)并再次运行存储过程。您应该会看到两个存储过程之间的区别:sp_Select1存储过程生成的SP:CacheMiss事件比Select1存储过程多一个(文章引用了SQL Server 7.0SQL Server 2000。

当我在我的 SQL Server 2008 R2 环境中运行该示例时,我SP:CacheMiss为两个过程(在 tempdb 和另一个测试数据库中)获得了相同数量的事件。

所以我想知道: …

stored-procedures sql-server-2008-r2

33
推荐指数
2
解决办法
5215
查看次数

如何确定我在 SQL Server 数据库中的表的大小

是否有任何内置函数/存储过程/查询有助于检索有关MyTableSQL Server 数据库中大小的信息?

sql-server table

33
推荐指数
3
解决办法
20万
查看次数

如何分析存储过程

我正在使用 SQL Server 2012 并且想知道如何分析存储过程

例如,探查器可以捕获存储过程中的每个单独的 SQL 语句,它是什么,运行需要多长时间等?

我正在尝试诊断合并复制存储过程,这必须是合并代理完整运行的一部分。似乎不可能抓住有性能问题的存储过程并再次运行它,因为在这一点上它并不慢。

sql-server sql-server-2012

31
推荐指数
2
解决办法
7万
查看次数