出于某种原因,我在n 个数据库(相同名称和模式结构)而不是单个数据库中有一个表Table_1。列是这样的:
| 专栏_1 | 专栏_2 |
我可以通过对每个数据库运行此查询来从这n 个数据库中选择数据:
use Database_n
select * from Table_1
Run Code Online (Sandbox Code Playgroud)
问题:这将要求我运行此查询n 次。这将返回n 个结果集,如下图所示:

问题:有没有办法在一个结果集中从所有这些数据库中获取数据,如下所示:

我有一个返回以下数据集的查询:
RELATIONid MAPid D1id D2id D3id
4999 4999 626 1250 7
5000 5000 626 1250 8
Run Code Online (Sandbox Code Playgroud)
对于下一步,我需要将这些数据集绑定到树视图(层次结构)中。我需要将此数据集转换为以下内容:
Nodeid ParentNodeid Header
626 null D1
1250 626 D2
7 1250 D3
8 1250 D3
Run Code Online (Sandbox Code Playgroud)
我如何从原始数据集中实现这些结构?
我还有一个问题要问,数据结构比前一个复杂(一点点)。假设我有这样的示例数据集:
RELATIONid MAPid D1id D2id D3id
4999 4999 626 1250 7
5000 5000 626 1250 8
5001 5001 627 1300 10
5002 5002 627 1300 12
5003 5003 628 1400 15
Run Code Online (Sandbox Code Playgroud)
从以下数据集中,我们有 3 个 MainParent:626, 627, 628并且转换(交叉应用)输出期望将是这样的:
Nodeid ParentNodeid Header
626 null D1
1250 626 …Run Code Online (Sandbox Code Playgroud) 我有一个查询,即使使用SQL Sentry,也无法消除索引扫描。
这是查询:
SELECT TOP 30 codCliente FROM (
SELECT t1.CodCliente, codcampo, valor, t1.chavealeat
FROM tblCliente AS t1 WITH(NOLOCK)
INNER JOIN tblClienteDetalhe AS t2 WITH(NOLOCK)
ON t1.codcliente = t2.codcliente
AND CodCampo IN(-1, 4)
WHERE codStatus IN (0)
AND t1.ChavePeriodo < GETDATE()
AND t1.CodStatusLigacao = 0
AND EXISTS
(
SELECT codcliente FROM tblclientedetalhe WITH(NOLOCK)
WHERE codcampo = 3 AND valor = '2'
AND codcliente = t1.codcliente
)
AND EXISTS
(
SELECT codcliente FROM tblclientedetalhe WITH(NOLOCK)
WHERE codcampo = 6
AND CONVERT(DATETIME, …Run Code Online (Sandbox Code Playgroud) performance sql-server-2008 sql-server clustered-index query-performance
这是 MSDN 页面上 OVER 子句的一段代码:
USE AdventureWorks2012;
GO
SELECT BusinessEntityID, TerritoryID
,DATEPART(yy,ModifiedDate) AS SalesYear
,CONVERT(varchar(20),SalesYTD,1) AS SalesYTD
,CONVERT(varchar(20),AVG(SalesYTD) OVER (PARTITION BY TerritoryID
ORDER BY DATEPART(yy,ModifiedDate)
),1) AS MovingAvg
,CONVERT(varchar(20),SUM(SalesYTD) OVER (PARTITION BY TerritoryID
ORDER BY DATEPART(yy,ModifiedDate)
),1) AS CumulativeTotal
FROM Sales.SalesPerson
WHERE TerritoryID IS NULL OR TerritoryID < 5
ORDER BY TerritoryID,SalesYear;
Run Code Online (Sandbox Code Playgroud)
所以我在理解为什么必须在那里使用 CONVERT 函数时遇到问题。我认为这与转换函数的表达式部分中的字段之一的返回类型有关?可以用 CAST 代替吗?我的第二个问题是,这部分究竟是如何工作的?
SUM(SalesYTD) OVER (PARTITION BY TerritoryID
ORDER BY DATEPART(yy,ModifiedDate)
Run Code Online (Sandbox Code Playgroud)
这到底是什么意思?是每年计算总和吗?是这样吗?
征求专家意见。发生了一件非常不幸的事情。几天前,我们的一台 PC 崩溃了。那台电脑安装了 SQL Server 2008。不幸的是,该服务器上没有运行备份。我们将磁盘发送到数据恢复位置,看起来他们可以恢复某些.mdf和.ldf文件。
我们对 1 个特定数据库特别感兴趣。
我的问题是:
提前感谢您的帮助。
我正在使用 SQL Server 2008,我发现此解决方案仅适用于 SQL Server 2012 - 在 SQL Server 2008 中格式化电话号码的等效方法是什么?
FORMAT([PhoneField],'###-###-####')
Run Code Online (Sandbox Code Playgroud) 以下代码用于在文本文件中写入数字,而是将“Echo is ON”写入文本文件。
SET @CMD = 'ECHO '+@Ver+'>'+@Vercheck
Print @CMD
EXEC xp_cmdshell @CMD
,NO_OUTPUT
Run Code Online (Sandbox Code Playgroud)
打印@CMD 给出“ECHO 1>C:\Pharmsuite\Vercheck.txt”
这里查询写的是“Echo is ON”而不是 1。
我有 2 个带有列名的表WHO,我正在使用这 2 个表创建一个视图,其中FSwho.who = FStasks.who.
如果我在FStaskswhere 中输入一条新记录FStasks.who = LIZ,但我的FSwho.who表上没有记录,那么触发器应该插入LIZ到我的表中。
使用下面的代码,我得到的错误是
无法绑定多部分标识符“fs_tasks.WHO”。(我也试过
inserted.who)
我搜索了互联网,我遇到的大多数解决方案都是关于更改同一张桌子上的值。如何将值插入到完全不同的表中?
ALTER TRIGGER [dbo].[FS_TASKS_TRIG]
ON [dbo].[FS_TASKS]
AFTER INSERT,UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Action as char(1);
SET @Action = (CASE
WHEN EXISTS(SELECT * FROM INSERTED) AND EXISTS(SELECT * FROM DELETED) THEN 'U' -- Set Action to Updated.
WHEN EXISTS(SELECT * FROM INSERTED) THEN 'I' -- Set Action to Insert.
WHEN EXISTS(SELECT * …Run Code Online (Sandbox Code Playgroud) 我有一个价值19920000。这是日期格式yyyyMMdd。我想按表中的日期字段保存。您可能会看到它是无效数据,因为日和月值为零。我可以在 SQL Server 中将日期格式转换为这个值吗?可不可以?
如何仅在日期字段中保存年份?
我从excel表中获取数据。这些数据是客户的出生日期。有些人想隐藏出生日期的日期和月份。他们没有给出正确的日期格式。我的应用程序是从 excel 表中读取数据并显示在 datagridview 表上,然后保存到数据库。数据量大,至少一次读取约30000条以上记录。我无法为此数据字段分隔列,因为性能可能会下降。
我正在使用 SQL Server 2008。
.
每天我们都会在特定时间段 (03:00 AM - 04:00 AM) 收到一条警报,表明页面预期寿命太低:
SCOM:警报:SQL DB 2008 引擎页面预期寿命太低
我们已查看在此期间是否正在运行任何内存密集型操作,但未发现任何内容。
我们假设原因是通过 Windows 服务运行的查询导致缓冲区缓存中的页面寿命达到非常低的值(8 - 22 秒)
解决此问题的好方法是什么?
感谢奥萨马·瓦利
sql-server-2008 ×10
sql-server ×8
t-sql ×2
buffer-pool ×1
date ×1
hierarchy ×1
memory ×1
performance ×1
table ×1
xp-cmdshell ×1