小编mar*_*c_s的帖子

SQL Server:跟踪所有连接/断开连接

我有一个 Microsoft SQL Server 2008r2 SP1。

我需要知道哪些用户连接到数据库和断开连接。

理想情况下,我想要一个(日期时间、用户名、连接/断开连接)列表。

这可以使用扩展事件来完成吗?或者,还有更好的方法?

sql-server-2008 sql-server sql-server-2008-r2

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

在多个 nvarchar(max) 列上建立索引

我的数据库中有多个 nvarchar(max) 列,名为ShipperName, ConsigneeName, ProdDesc, BillOFLading

我需要做的是将UNIQUE INDEX这些列组合起来。因为我没有这样做,因为如果 900 B 限制。

然后我尝试了(阅读以下链接Indexing Wide Keys 后

ALTER TABLE dbo.ProductDetail 
   ADD ShipperNameHash AS HASHBYTES('SHA2_512', ShipperName) PERSISTED;

ALTER TABLE dbo.ProductDetail 
   ADD ConsigneeNameHash AS HASHBYTES('SHA2_512', ConsigneeName) PERSISTED;
Run Code Online (Sandbox Code Playgroud)

然后我在以下语句中遇到以下错误:

消息 8152,级别 16,状态 10,第 1 行
字符串或二进制数据将被截断。
该语句已终止。

ALTER TABLE dbo.ProductDetail 
   ADD ProductDescHash AS HASHBYTES('SHA2_512', Product_Description) PERSISTED;
Run Code Online (Sandbox Code Playgroud)

而且还创建了上面的语句列varbinary(8000)。这当然没有为我解决问题。

有什么方法可以建立UNIQUE INDEX在这些列的组合上吗?

index sql-server sql-server-2012

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

SQL Server 2008 R2 Express 单 CPU 内核使用情况和升级到 SQL Server 2014 Express 的需要

在我们的办公室,我们使用安装在 Windows Server 2012 中的 SQL Server 2008R2 Express。SQL Server 数据库同时被网络中的 60 多个用户访问。最近几天,我们遇到了 SQL Server 和我们使用 SQL Server 的程序的性能下降。

从过去几年开始,我们使用 Windows Server 2003 和 SQL Server 2008 R2 Express。几个月后,我们将服务器更改为 Windows Server 2012。

我可以使用性能计数器等分析 SQL Server 的性能。但在此之前我想知道以下细节

  1. SQL Server 2008 R2 Express 是否有任何限制,例如它只使用一个 CPU 核心?这可能是性能缓慢的原因吗?

  2. 在 Windows Server 2012 上使用旧版本 (SQL Server 2008 R2 Express) 时是否存在兼容性问题?

  3. 是否需要升级到 SQL Server 2014 Express?我会得到什么好处吗?

performance sql-server sql-server-express windows-server sql-server-2014

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

在服务器 A 上的 SQL Server 2008 上备份数据库 X - 还原到服务器 B 上的 SQL Server 2012 数据库 Y

我想使用不同的数据库名称将 SQL Server 2008 数据库复制到 SQL Server 2012。

  • 备份“生产”并将其复制到 SQL Server 2012 机器。
  • 使用“test”名称创建了一个新的 SQL Server 2012 数据库。
  • 试图恢复.bak文件,但 SQL Server 说“测试”正忙

top 这样做的正确方法是什么?

基本上是将 2008 年生产数据库的快照放入 2012 年测试环境中。

谢谢

鲍勃

sql-server backup restore sql-server-2012

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

SQL Server Management Studio 不加载

过去 15 天我一直在使用 SQL Server 2012,它运行良好,但现在我遇到了一个问题:

找不到一个或多个组件。请重新安装应用程序

sql-server-2012

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

总碎片 99%,我不能让它保持下来

我有一个 SQL Server 2008 R2 数据库,它的大小为 13000.31 MB,我最大的表有大约 50 万条记录。这是我购买的数据库。它已经有索引,但是当我运行数据库时它很慢。它比它替换的数据库(来自同一家公司)要慢,应该是上等的。我试图重建索引,因为它们中的大多数都处于 99%。重建后,它们变为 0。但几分钟后,它们又回到了 99%。

为什么会这样?

index sql-server sql-server-2008-r2

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

当用户属于具有各种权限的多个组时,SQL Server 如何处理登录?

我试图围绕 SQL Server 如何决定根据用户登录权限授予某些权限。如果用户属于有权访问 DB1 的“READ ONLY”组,但他们也属于对同一 DB1 具有完全数据库所有者权限的“SysAdmin”组,则他们在登录时会获得哪些权限? 在类似的说明上。如果他们是一个组的一部分,但也有一个具有其他中间权限的独立帐户怎么办?

security sql-server

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

将 SQL Server 默认实例的文件夹移动到同一服务器上的另一个路径

我的客户安装了 SQL Server 2012 默认实例。但是默认实例的文件夹和数据文件夹在同一个磁盘上。

我想将默认实例的文件夹移动到另一个磁盘 ( C:Program Files\Sql Server\)。

我可以在不卸载现有实例然后安装新实例的情况下执行此操作吗?

instance sql-server-2012

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

无需编译即可创建/更改存储过程

是否可以在 SQL Server 2005* 中创建或更改不编译该过程的存储过程?

(* - 是的,不幸的是,我们仍然需要支持 2005 作为我们的最低标准)

我有一种情况,能够创建/更改语法上有效但语义上无效的存储过程(由于不正确的表/列名称)将非常有用……然后我可以在 SSMS 中进行相应的更改。

我刚刚有了一个想法,这是一个非常简单的解决方案......在更改/创建存储过程时注释掉它的全部内容。

UsingCtrl+K Ctrl+C将单独注释掉每一行 - 这比/* */在整个事物周围使用更好,因为如果/* */存储过程中已经有任何实例,那将会失败。

我仍然很想知道是否有一种实际的方法可以告诉 SSMS 忽略无效的表/视图/列名称。

感谢@marcelo 的回答,使用不存在的表的名称似乎确实允许您创建存储过程。

但是,如果您使用现有表中不存在的,则不允许您创建存储过程

sql-server-2005 sql-server

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

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