我有一个 Microsoft SQL Server 2008r2 SP1。
我需要知道哪些用户连接到数据库和断开连接。
理想情况下,我想要一个(日期时间、用户名、连接/断开连接)列表。
这可以使用扩展事件来完成吗?或者,还有更好的方法?
我的数据库中有多个 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在这些列的组合上吗?
在我们的办公室,我们使用安装在 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 的性能。但在此之前我想知道以下细节
SQL Server 2008 R2 Express 是否有任何限制,例如它只使用一个 CPU 核心?这可能是性能缓慢的原因吗?
在 Windows Server 2012 上使用旧版本 (SQL Server 2008 R2 Express) 时是否存在兼容性问题?
是否需要升级到 SQL Server 2014 Express?我会得到什么好处吗?
performance sql-server sql-server-express windows-server sql-server-2014
我想使用不同的数据库名称将 SQL Server 2008 数据库复制到 SQL Server 2012。
.bak文件,但 SQL Server 说“测试”正忙top 这样做的正确方法是什么?
基本上是将 2008 年生产数据库的快照放入 2012 年测试环境中。
谢谢
鲍勃
过去 15 天我一直在使用 SQL Server 2012,它运行良好,但现在我遇到了一个问题:
找不到一个或多个组件。请重新安装应用程序
我有一个 SQL Server 2008 R2 数据库,它的大小为 13000.31 MB,我最大的表有大约 50 万条记录。这是我购买的数据库。它已经有索引,但是当我运行数据库时它很慢。它比它替换的数据库(来自同一家公司)要慢,应该是上等的。我试图重建索引,因为它们中的大多数都处于 99%。重建后,它们变为 0。但几分钟后,它们又回到了 99%。
为什么会这样?
我试图围绕 SQL Server 如何决定根据用户登录权限授予某些权限。如果用户属于有权访问 DB1 的“READ ONLY”组,但他们也属于对同一 DB1 具有完全数据库所有者权限的“SysAdmin”组,则他们在登录时会获得哪些权限? 在类似的说明上。如果他们是一个组的一部分,但也有一个具有其他中间权限的独立帐户怎么办?
我的客户安装了 SQL Server 2012 默认实例。但是默认实例的文件夹和数据文件夹在同一个磁盘上。
我想将默认实例的文件夹移动到另一个磁盘 ( C:Program Files\Sql Server\)。
我可以在不卸载现有实例然后安装新实例的情况下执行此操作吗?
是否可以在 SQL Server 2005* 中创建或更改不编译该过程的存储过程?
(* - 是的,不幸的是,我们仍然需要支持 2005 作为我们的最低标准)
我有一种情况,能够创建/更改语法上有效但语义上无效的存储过程(由于不正确的表/列名称)将非常有用……然后我可以在 SSMS 中进行相应的更改。
我刚刚有了一个想法,这是一个非常简单的解决方案......在更改/创建存储过程时注释掉它的全部内容。
UsingCtrl+K Ctrl+C将单独注释掉每一行 - 这比/* */在整个事物周围使用更好,因为如果/* */存储过程中已经有任何实例,那将会失败。
我仍然很想知道是否有一种实际的方法可以告诉 SSMS 忽略无效的表/视图/列名称。
感谢@marcelo 的回答,使用不存在的表的名称似乎确实允许您创建存储过程。
但是,如果您使用现有表中不存在的列,则不允许您创建存储过程
为什么
SELECT CAST('2014-11-28 15:06:02.165' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
返回:
2014-11-28 15:06:02.167
Run Code Online (Sandbox Code Playgroud)