当我想创建一些时间戳字段(或其他日期/时间样式字段)时,命名它们的最佳方法是什么?我应该只放 record_timestamp 吗?
让我们检查这两个语句:
IF (CONDITION 1) OR (CONDITION 2)
...
IF (CONDITION 3) AND (CONDITION 4)
...
Run Code Online (Sandbox Code Playgroud)
如果CONDITION 1是TRUE,会CONDITION 2被检查吗?
如果CONDITION 3是FALSE,会CONDITION 4被检查吗?
条件如何WHERE:SQL Server 引擎是否优化WHERE子句中的所有条件?程序员是否应该以正确的顺序放置条件以确保 SQL Server 优化器以正确的方式解析它?
添加:
感谢 Jack 提供链接,来自 t-sql 代码的惊喜:
IF 1/0 = 1 OR 1 = 1
SELECT 'True' AS result
ELSE
SELECT 'False' AS result
IF 1/0 = 1 AND 1 = 0
SELECT 'True' …Run Code Online (Sandbox Code Playgroud) 如何在SCHEMABINDING不重新创建视图的情况下关闭视图?
我在 MSDN 的下拉列表中找到了一个名为SQL Server "Denali"的新标题,但我没有找到太多关于它的信息:
是否有人对此版本中的新功能或重大错误修复有更详细的信息?我希望有人使用过或测试过它。
RDBMS 系统是否针对COMMIT操作进行了优化?ROLLBACK操作慢/快多少?为什么?
我们的开发人员正在处理的数据库太大(有很多数据库对象)。我们必须控制 db 对象的更改(更改管理)。我们公司不能有一个人只负责数据库的变化。所以我们需要一个数据库对象的源安全,类似于标准代码的版本控制,但更多地与数据库相关,可以同步数据库和脚本。什么是最好的。可靠、便宜、实用 - 选择两个:)
source-control sql-server version-control sql-server-2008-r2
我有 10 个存储过程,每个存储过程都将 INSERT 插入到一个 tableX 中。
是否可以在 tableX 的触发器主体中获取导致 tableX 修改的对象(存储的 proc1 或 sp2 或....)?
谢谢你。
我客户的 SQL 服务器上有很多数据库。这些数据库正在开发中,因此开发人员可以进行设计、重构、数据修改等。有一些数据库很少更改。我的客户必须确保所有这些都安全(备份)并花一些时间管理环境。(公司没有DB管理员职位。)经过长时间的讨论,客户决定使用每日完整备份策略,因为恢复容易。
所以这里是情况的总结:
主要问题:如何检测数据库已更改。问题的第一部分(DDL 更改)可以通过使用DDL 触发器来解决。但是数据更改(DML 更改)是一个问题。不可能将 DML 触发器应用于所有数据库的所有表以跟踪更改(性能、扩展对象的管理......)。备份引擎必须跟踪所有更改以将每个数据库标记为准备备份。
Change Data Capture是一个解决方案,但它似乎太重了(它还需要 SQL Server 企业版)。
另一种方法是跟踪数据库文件更改(大小或上次更改时间),但它无法正常工作:当数据库超过所有保留的可用空间时,它可以更改其大小,而sp_spaceused不是解决方案。
跟踪是一种解决方案,但它会导致性能问题并需要额外的管理。
是否有任何解决方案可以在不影响其他数据库管理对象(如统计信息..)的情况下计算实际数据库使用大小?当然,对不改变表大小的表数据的更改不会触发(我认为),但总比没有好。我真的在寻找 SQL Server 2008 的直接或间接解决方案。
感谢您的任何评论、解决方案和想法。
添加:
这是解决方案(感谢玛丽安):
Select
NextLSN = MAX(fn.[Current LSN])
,Databasename = DB_NAME()
from fn_dblog(NULL, NULL) fn
LEFT JOIN sys.allocation_units au
ON fn.AllocUnitId = au.allocation_unit_id
LEFT JOIN sys.partitions p
ON p.partition_id = au.container_id
LEFT JOIN sys.objects so
ON so.object_id = p.object_id
WHERE
(
(Operation …Run Code Online (Sandbox Code Playgroud) 我得到了这样的错误:
正在恢复数据库“MyDb”。等待恢复完成。
那时我做了一个危急的手术。
造成这种情况的原因是什么?以及如何避免?
sql-server ×5
trigger ×2
backup ×1
condition ×1
deadlock ×1
features ×1
optimization ×1
performance ×1
rdbms ×1
recovery ×1
rollback ×1
t-sql ×1
transaction ×1
view ×1