小编dub*_*ech的帖子

查找表的上次更新时间

查询:

SELECT 
    name AS TableName, 
    create_date AS CreatedDate, 
    modify_date as ModifyDate 
FROM sys.tables 
order by ModifyDate;
Run Code Online (Sandbox Code Playgroud)

...将告诉我上次创建和修改表的时间(从 DDL 的角度)。但我想知道上次从表中插入或删除实际数据的时间。是否可以在 SQL Server 中获得它?

sql-server-2008 sql-server

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

将日期时间列转换为秒数

在我的 SQL Server 数据库中,我有一datetime列。

创建代表列long值的新列的好方法是什么datetime?在long将表示了若干秒。

我想如果我可以将它转换为longs,那么在一段时间内按查询分组会更容易,因为我可以将长数除以固定数量。

该表是静态的,不会更新或删除数据。

sql-server-2008 sql-server t-sql type-conversion datetime

11
推荐指数
2
解决办法
8万
查看次数

检查何时将行插入到 SQL Server 上的表中?

是否可以检查何时将特定行插入到 SQL Server 中的特定表中?如果这有帮助,该表有一个索引。

我需要为已经插入行的现有表执行此操作。

谢谢。

sql-server

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

按分钟和两分钟间隔分组

我有一个日期时间列,我可以轻松地在我的日期时间列上使用 group by 运行查询。但是,我想运行组查询

  • 1 分钟间隔
  • 2 分钟间隔
  • 5 分钟间隔
  • 1 小时间隔
  • 等等。

我该怎么做呢?

sql-server-2008 sql-server

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

列出准备好的语句

有人知道我如何列出 SQL Server 实例中的准备好的语句吗?

sql-server-2008 sql-server prepared-statement

8
推荐指数
1
解决办法
2711
查看次数

打开标准报告时出现问题

我正在使用 MS Sql Server Mgt Studio。

  1. 我选择一个数据库。
  2. 我右键单击并选择报告/标准报告/索引使用统计
  3. 我收到错误:'(' 附近的语法不正确

我检查了其他一些报告显示正常。其他,例如:顶级交易,所有区块交易,我得到错误:索引(零基数)必须大于或等于零且小于参数列表的大小。

任何想法可能是错误的?

sql-server-2008

6
推荐指数
1
解决办法
6734
查看次数

查找特定行的磁盘大小

我试图找出各种表中的许多行占用的磁盘大小。

我可以通过查询定义这些行。如何找出与 SQL Server 中的结果集对应的实际磁盘大小?

我之所以想知道这一点,是因为我正在尝试分析一个多租户系统。我试图获得每个租户在系统上占用的总大小。所以我需要与每个租户有关的所有行的大小以及每个租户在索引表中使用的大小等。

租户都共享相同的架构,因此不容易做到。

sql-server sql-server-2008-r2

6
推荐指数
1
解决办法
7950
查看次数

帮助解决这个问题

我有一张人桌。我还有一个汽车桌和书桌。车表和书表都有外键回人。

我正在尝试计算每个人拥有的书籍和汽车的数量。我试过:

SELECT 
    Person.Name, 
    COUNT(BooK.bookid) books, 
    COUNT(Car.CarId) cars 
FROM Person, Book, Car 
WHERE Person.ID = Book.PersonID = Car.PersonID 
Run Code Online (Sandbox Code Playgroud)

但我得到:

Incorrect syntax near '='
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server count

6
推荐指数
2
解决办法
1275
查看次数

将表传入存储过程

是否可以将表名传入存储过程?

例如,假设您有同一个表的多个视图。它们都具有完全相同的结构。

您需要一个可以为任何视图运行的存储过程。

就像是:

create procedure myprocedure
@tableName varchar(50) = ''
select blah from @tableName where blah = blah2 
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时,我得到

Must declare the table variable @tablename
Run Code Online (Sandbox Code Playgroud)

任何想法我怎么能做到这一点?

sql-server-2008 sql-server stored-procedures

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

总锁定时间

考虑两种更新数据的方法:

Approach 1:
Update Table 1, commit
Update Table 2, commit
Update Table 3, commit

Approach 2:
Update Table 1, Table 2, Table 3, commit.
Run Code Online (Sandbox Code Playgroud)

现在方法 1 不是原子的并且使用三个事务。然而,可以说方法 2 会更长时间地挂在锁上,因此也不会扩展。在不需要真正原子性的场景中,是否可以论证方法 1 的性能会更好,因为它不会长时间挂在锁上。

问题是,您需要统计数据和证据来做出良好的架构决策,而不仅仅是推测。我想为 SqlServer 设置跟踪,以便我可以了解两种方法之间的性能差异有多大?我想知道是1ms还是500ms?

我猜不是那么多,但希望证实我的怀疑。

非常感谢。

sql-server-2008 sql-server

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