小编Ric*_*iwi的帖子

Sql server表用法统计信息

我想找出数据库中哪些表使用最多(我的意思是读/写字节/表大小比)或IO /表大小比.决定哪些表放在较快的光盘上,哪些表放在较慢的光盘上.有任何想法吗?

我尝试使用dm_db_index_usage_stats
但是如何找出单个搜索/扫描下有多少IO?

先感谢您.

t-sql sql-server

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

SQL Delete清除表而不是错误

我有一块SQL(你认为)不会编译,而是删除目标表中的所有行.

考虑这个设置:

create table TableA (ColumnA varchar(200));
create table TableB (ColumnB varchar(200));

insert TableA values ('A'),('B'),('C');
insert TableB values ('A');
Run Code Online (Sandbox Code Playgroud)

然后是以下sql:

--Returns all rows from TableA
select * from TableA;

--Does not error (ColumnA does not exist on TableB)
delete TableA where ColumnA in (select ColumnA from TableB)

--No Rows are returned
select * from TableA;
Run Code Online (Sandbox Code Playgroud)

上面的delete语句会导致所有行被删除TableA,而不是ColumnA在其中不存在的错误TableB

这里有一个SQL小提琴:http ://www.sqlfiddle.com/#!3/9d883 /6

看来这个ColumnA来自TableA正在被接收,但预计它将"超出范围".

为什么是这样?

t-sql sql-server sql-server-2008 correlated-subquery

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

SQL Server Pivots ...我可以显示一系列订单类型的最后五个订单

我有下表:

create table myorders(ordertype char(1), orderdate datetime, orderid int)
Run Code Online (Sandbox Code Playgroud)

该表包含以下数据:

insert into myorders(ordertype, orderdate, orderid) values('P', '2013-02-14 20:04:48:287', 11082360)
insert into myorders(ordertype, orderdate, orderid) values('P', '2013-02-14 20:02:40:407', 40087130)
insert into myorders(ordertype, orderdate, orderid) values('P', '2013-02-14 20:02:07:277', 7990558)
insert into myorders(ordertype, orderdate, orderid) values('C', '2013-02-14 19:58:46:097', 8225181)
insert into myorders(ordertype, orderdate, orderid) values('P', '2013-02-14 19:58:39:740', 40087129)
insert into myorders(ordertype, orderdate, orderid) values('C', '2013-02-14 19:57:33:063', 8225235)
insert into myorders(ordertype, orderdate, orderid) values('C', '2013-02-14 19:56:17:207', 8225233)
insert into myorders(ordertype, orderdate, orderid) values('C', '2013-02-14 …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

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

数据库中最近更新的表的列表

我的数据库中有多个表.我需要知道在某个时间戳之后(或在上一次操作期间)更新的表的名称.

你能指导我查询或任何帮助的链接吗?

sql database

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

SQL/Oracle按特定日期的某种类型按字段分组数据

好吧,尝试构建一个单独的查询来节省我自己一大堆时间(而不是写大量的单独查询),但我甚至不知道如何开始这个.

我需要的是single day and type在上午8:00到晚上8:00之间按小时查看和分析行动计数.所以例如我有以下假表

TYPE_   ACTION_     TIMESTAMP_
------------------------------
A       processed   2010-11-19 10:00:00.000
A       processed   2010-11-19 10:46:45.000
A       processed   2010-11-19 11:46:45.000
A       processed   2010-11-19 12:46:45.000
A       processed   2010-11-19 12:48:45.000
A       pending     2010-11-19 11:46:45.000
A       pending     2010-11-19 11:50:45.000
A       pending     2010-11-19 12:46:45.000
A       pending     2010-11-19 12:48:45.000
B       pending     2010-11-19 19:48:45.000
B       pending     2010-11-19 21:46:45.000
.etc
Run Code Online (Sandbox Code Playgroud)

所以,如果我想查看所有记录

  • TYPE_ ='A'
  • 日期2010-11-19
  • 按行动每小时分组

我会看到这个结果

ACTION_ NUMOCCURENCES   RANGE
---------------------------------------------
processed  2                10:00:00 - 11:00:00
pending    0                10:00:00 - 11:00:00
processed  1                11:00:00 - …
Run Code Online (Sandbox Code Playgroud)

sql oracle grouping timestamp

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

SQL Server 2008 MERGE语句 - 如何禁用INSTEAD OF INSERT触发器以允许MERGE

我试图在存储过程中使用SQL SERVER 2008 MERGE语句来更新/插入表.我在表上有一个INSTEAD OF INSERT触发器,并在尝试创建该过程时收到以下错误消息

MERGE语句的目标"Phone"对MERGE语句中指定的某些操作(但不是全部)具有INSTEAD OF触发器.在MERGE语句中,如果任何操作在目标上启用了INSTEAD OF触发器,则所有操作都必须启用INSTEAD OF触发器.

我绝对不需要INSTEAD OF UPDATE触发器(并且由于在表上启用了CASCADE DELETES而无法创建一个).

因此,在存储过程中,我首先在MERGE之前发出DISABLE TRIGGER命令.但是当我运行存储过程时,我得到了同样的错误,就好像DISABLE TRIGGER命令永远不会运行一样.

sql sql-server merge triggers sql-server-2008

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

将数据转换为多列

我有很多客户,每个客户有 67 条记录。

该记录包含活动、日期、ID、标志和许多其他列。

我希望活动名称成为这些活动标题下方的标题和日期。

我尝试使用下表对其进行更多解释。这是当前的输出:

Client  Activity    Date 
1       A           21/15
1       B           5/5/2012
1       C           51/3115
1       D           54/6/84
2       A           8/6/99
2       B           1/1/2011
2       C           8/4
2       D           9/81/1
3       A           6/51/8
3       B           1/61/8
3       C           1/31
3       D           3/2/1
Run Code Online (Sandbox Code Playgroud)

我希望它是:

Client      A       B         C         D
1           21/15   5/5/2012  51/31/15  54/6/84
2           8/6/99  1/1/2011  8/4       9/81/1
3           6/51/8  1/61/8    1/31      3/2/1
Run Code Online (Sandbox Code Playgroud)

sql sql-server pivot

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

更新查询时的MYSQL案例

这是我的桌子.

我需要做的是创建一个CASE WHEN UPDATE Query来更新

  • CurrentCredit +1如果1-15

  • CurrentCredit +2如果16-30

  • CurrentCredit x.10并在> = 31时向上舍入

mysql sql

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

SQL:将个人不同的诊断放入一个水平行

我正在将Microsoft SQL Server 2008用于心理健康组织.

我有一个列出所有客户端及其诊断的表,但每个诊断客户端都在新行中.我希望它们全部在水平列出的单行中,每个诊断的日期.有些人只有一个诊断,有些人有20个,有些人没有.

这是一个关于我的数据现在如何看起来的例子(只有少数客户,我们有数千个): http://i.imgur.com/pBV4svz.png

这是我最喜欢的格式: http://i.imgur.com/8cM2iNa.png

您可以提供的任何解决方案或正确方向的提示都会很棒,谢谢!

sql sql-server pivot

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

将权重存储在数据库表中

我正在玩学习MVC,并想创建一个食谱记录器应用程序来存储我的食谱.

我正在使用.net与Sql Server 2008 R2,但我不认为这对我想要做的事情真的很重要.

我希望能够记录我使用的所有措施.在我的国家,我们使用公制,但我希望人们能够在我的应用程序中使用英制.

如何构建我的表来应对差异,我正在考虑将所有测量值存储为整数并且有一个外键来存储重量类型.

理想情况下,我希望能够在人与人之间分享食谱,并以他们喜欢的方式显示测量结果.

这是正确的方式吗?

IngredientID PK
Weight int
TypeOfWeight int e.g. tsp=1,tbl=2,kilogram=3,pound=4,litre=5,ounce=6 etc
UserID int 
Run Code Online (Sandbox Code Playgroud)

或者这种方式偏离轨道?任何建议都会很棒!

sql sql-server database-design sql-server-2008-r2

3
推荐指数
2
解决办法
2739
查看次数