是否有 T-SQL 查询显示某个数据库的上次还原日期时间?
我正在尝试强制删除数据库,但是在删除数据库后,当我尝试重新创建数据库时,出现错误
无法创建文件 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 2012 数据库中,我们正在使用varchar,我们想改变它nvarchar。我已经生成了一个脚本来做到这一点。
我的问题是 SQL Server 写入varchar列的方式与写入列的方式有什么不同吗?nvarchar列的吗?我们有一些我很关心的后端程序。
编辑:
不确定这是否有帮助,但这些列没有索引、f/k 或约束。
我一直在做我的SQL Server 2014 Express数据库的备份导入到其他服务器,发现两者之间的文件大小的差异.bacpac和.bak。
为什么一个.bacpac文件比.bak同一个数据库的文件那么小?
感谢您的任何见解!
假设您需要确保依赖 SQL Server 2012 作为其数据库后端的应用程序全天候可用,即使一台服务器出现故障。
作为开发人员而不是 DBA,我很难理解何时使用哪种场景来实现故障转移/高可用性:
这些场景中的哪一个适用于什么样的工作负载,以及这些场景可以处理什么样的故障/中断?它们甚至具有可比性/可交换性吗?
sql-server clustering failover availability-groups transactional-replication
SQL Server 占用了我服务器 RAM 的 87.5%。这最近造成了很多性能瓶颈,例如缓慢。我研究了这个问题。我可以在 Internet 上找到的一种常见解决方案是设置 SQL Server 的最大限制。这已经完成并且获得了很大的改进。我想知道为什么如果没有设置最大内存值为什么 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 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.0和SQL Server 2000。)
当我在我的 SQL Server 2008 R2 环境中运行该示例时,我SP:CacheMiss为两个过程(在 tempdb 和另一个测试数据库中)获得了相同数量的事件。
所以我想知道: …
是否有任何内置函数/存储过程/查询有助于检索有关MyTableSQL Server 数据库中大小的信息?
我正在使用 SQL Server 2012 并且想知道如何分析存储过程
例如,探查器可以捕获存储过程中的每个单独的 SQL 语句,它是什么,运行需要多长时间等?
我正在尝试诊断合并复制存储过程,这必须是合并代理完整运行的一部分。似乎不可能抓住有性能问题的存储过程并再次运行它,因为在这一点上它并不慢。
sql-server ×9
backup ×1
clustering ×1
export ×1
failover ×1
import ×1
memory ×1
restore ×1
table ×1
varchar ×1