小编MDC*_*CCL的帖子

如何跳过 SQL Server 查询中的行?

我从我的product表中选择了一个额外的 Row_Number() 列 (Num) 的查询,我得到了如下的答案(我只限制了 20 行来检索)。

询问

SELECT * 
FROM (SELECT ROW_NUMBER() OVER(ORDER BY ProductCode) AS Num, 
             ProductName
      FROM   BASE_Product 
      WHERE IsActive = 1) BASE_Product 
WHERE Num > 0 
AND   Num < (21)
Run Code Online (Sandbox Code Playgroud)

结果

在此处输入图片说明

我的要求是如何跳过每 3 行并仅检索 7 个限制行。

预期结果

我需要如下结果:

在此处输入图片说明

sql-server sql-server-2012 sql-server-2014

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

如何将数据从 SQL Server 审计文件加载到表中?

我在 SQL Server 2008 R2 中启用了审计来监视 DML 和 DDL 操作。

有没有办法将 SQLAudit 文件加载到数据库?或者任何其他方法将审计详细信息直接自动加载到数据库?

sql-server audit sql-server-2008-r2

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

两个表的区别

我试图找出两个表之间的差异,每个表都在不同的数据库中。我以为我可以做一个完整的外连接,但我得到的结果太多了。

下面的 T-SQL 返回 167 个结果

SELECT N'{'+ADobjectGUID+N'}' [GUID], first_name [First], last_name [Last], description [Full] FROM [db1].[dbo].[tb1] where delete_date is null
except
SELECT ObjectGUID [GUID], GivenName [First], sn [Last], displayName [Full] FROM [db2].[dbo].[tb1]
Run Code Online (Sandbox Code Playgroud)

当我将其反转为以下时,它返回 214 个结果

SELECT ObjectGUID [GUID], GivenName [First], sn [Last], displayName [Full] FROM [db2].[dbo].[tb1]
except
SELECT N'{'+ADobjectGUID+N'}' [GUID], first_name [First], last_name [Last], description [Full] FROM [db1].[dbo].[tb1] where delete_date is null
Run Code Online (Sandbox Code Playgroud)

但是,我需要的不仅仅是数据库中的那些列,因此我无法使用该except语句。

select N'{'+ADobjectGUID+N'}' [GUID], first_name [First], last_name [Last], db1.dbo.tb1.description [Full], domain_user_id, sAMAccountName, employeeID 
from db1.dbo.tb1 …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql except

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

LIKE 查询优化

我有下表:

create table Order_Details
(
 ID int not null primary key
,Order_ID int
,Order_Description nvarchar(40)
)
Run Code Online (Sandbox Code Playgroud)

我们在上表中插入了 27,500,000 行,当我在查询下面运行时,它需要 6-7 秒。

select ID,Order_ID, Order_Description 
from Order_Details
where Order_Description  like '%Football Size%'
Run Code Online (Sandbox Code Playgroud)

我在Order_Description包含ID和应用了非聚集索引Order_ID

还有其他方法可以优化查询并以更快的方式获得结果吗?

sql-server optimization sql-server-2012

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

动态端口被设置为不同的端口

在我们的 SQL Server 实例之一(如果您确实需要知道,则为 12.0.5571.0)上,我们使用多个 IP 地址进行连接。

  • 127.0.0.1 - 动态端口设置为 0。没有设置静态端口
  • 172.16.0.5 - SQL Server 所在服务器的 IP 地址。动态端口设置为 0(自动生成)。未分配静态端口
  • 172.16.0.6 - SQL Server 实例的 IP 地址(这样团队只需要点击 IP 地址而不知道他们真正在哪个服务器上)。未分配动态端口。静态端口 1433

我一直在玩 puppet 并且一直在搞乱注册表设置

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.InstanceNameX\MSSQLServer\SuperSocketNetLib\Tcp
Run Code Online (Sandbox Code Playgroud)

看看我是否可以使用 puppet 来自动配置 IP 地址和端口分配。我创建了一个名为“IP172016000006”的新注册表路径

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.InstanceNameX\MSSQLServer\SuperSocketNetLib\Tcp\IP172016000006
Run Code Online (Sandbox Code Playgroud)

我从中模板化

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.InstanceNameX\MSSQLServer\SuperSocketNetLib\Tcp\IP1
Run Code Online (Sandbox Code Playgroud)

但是现在每当我启动 SQL Server 实例时,127.0.0.1 和 172.16.0.5 的动态端口都不同。

比如我会停止SQL Server的实例,进入

  • “SQL Server 配置管理器”
    • 导航到实例的网络配置
      • tcp/ip
        • IP地址
          • 并为 IP 地址 127.0.0.1 和 172.16.0.5 设置“TCP 动态端口 = 0”。

重新启动 SQL Server 后,该实例将侦听 127.0.0.1:43340 和 172.16.0.5:43341(似乎总是比另一个端口多 1) …

sql-server network sql-server-2014

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

数据库图表的脚本创建

是否可以使用 T-SQL 编写数据库图表的创建脚本?

如果不是,当您使用数据库图表设计器保存/编辑图表时(它是使用 PowerShell 还是其他某种语言来保存和加载这些类型的对象),它在做什么?

我问是因为我希望自动创建数据库图表。我有一个我的开发人员编写的工具(在 C# 中),它根据它对我们供应商数据所做的一些 Web 服务调用的响应自动创建表及其外键关系。

sql-server t-sql database-diagrams

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

如果添加另一个行数据文件,SQL Server 开始移动数据的速度有多快?

我们的 sql server 迁移被延迟(自然地),并且在新的切换日期之前它将用完空间。为了保持数据库正常运行,我需要给它另一个数据库文件来开始写入。

我已经分配了空间并准备好了,但是当我创建它时,SQL Server 会立即开始将数据移动到新文件中吗?

问题:我最好创建两个新文件,然后运行

    dbcc shrinkfile (livendb, emptyfile)
Run Code Online (Sandbox Code Playgroud)

在旧的?确保他们立即变得平等?

sql-server

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

用于事务复制的域帐户或 Windows 帐户

所有在线资源都说使用 Windows 帐户作为 Agent 帐户,即 Snapshot、Distributor 和 Log Reader 来设置复制。

请参阅以下链接作为示例:

我的问题是:上面使用域帐户有什么问题,哪个更容易维护和管理?

replication sql-server sql-server-agent transactional-replication

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

PostgreSQL 中 SQL Server 的 db_datareader/db_datawriter 相当于什么?

我正在将应用程序从 SQL Server 移植到 PostgreSQL。其中大部分很简单,因为应用程序只真正执行简单的选择、插入和更新。但是我需要创建一个用户来访问数据库。SQL Sever 代码像这样创建它的用户:

USE [master] CREATE LOGIN [ExampleUserName] WITH PASSWORD = 'ExamplePassword', CHECK_EXPIRATION=OFF, CHECK_POLICY=ON;
USE [ExampleDB];
CREATE USER [ExampleUserName] FOR LOGIN [ExampleUserName];
ALTER ROLE [db_datawriter] ADD MEMBER [ExampleUserName];
ALTER ROLE [db_datareader] ADD MEMBER [ExampleUserName];
Run Code Online (Sandbox Code Playgroud)

什么是 PostgreSQL 中的等价物?

postgresql permissions role

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

具有单独行中的值的“查找”表的名称

我希望在特定情况下命名。当您删除以逗号分隔的列并将其拆分为新表中的单独行时,这种类型的表称为什么?

在下面的例子中,我可以保留FavoriteFoods在最上面的桌子(阿尔伯特爱因斯坦会有“苹果派,汤”),但我希望每种食物都有自己的行。

第二个表是未标准化的“交叉连接”表吗?

如果你知道这个名字,请分享。知道名字后,我会做更多的研究。

上表中的 PersonID 和 Name 以及下表中的 PersonID 和 FavoriteFood

normalization database-design

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