我从我的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 2008 R2 中启用了审计来监视 DML 和 DDL 操作。
有没有办法将 SQLAudit 文件加载到数据库?或者任何其他方法将审计详细信息直接自动加载到数据库?
我试图找出两个表之间的差异,每个表都在不同的数据库中。我以为我可以做一个完整的外连接,但我得到的结果太多了。
下面的 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) 我有下表:
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 实例之一(如果您确实需要知道,则为 12.0.5571.0)上,我们使用多个 IP 地址进行连接。
我一直在玩 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 后,该实例将侦听 127.0.0.1:43340 和 172.16.0.5:43341(似乎总是比另一个端口多 1) …
是否可以使用 T-SQL 编写数据库图表的创建脚本?
如果不是,当您使用数据库图表设计器保存/编辑图表时(它是使用 PowerShell 还是其他某种语言来保存和加载这些类型的对象),它在做什么?
我问是因为我希望自动创建数据库图表。我有一个我的开发人员编写的工具(在 C# 中),它根据它对我们供应商数据所做的一些 Web 服务调用的响应自动创建表及其外键关系。
我们的 sql server 迁移被延迟(自然地),并且在新的切换日期之前它将用完空间。为了保持数据库正常运行,我需要给它另一个数据库文件来开始写入。
我已经分配了空间并准备好了,但是当我创建它时,SQL Server 会立即开始将数据移动到新文件中吗?
问题:我最好创建两个新文件,然后运行
dbcc shrinkfile (livendb, emptyfile)
Run Code Online (Sandbox Code Playgroud)
在旧的?确保他们立即变得平等?
所有在线资源都说使用 Windows 帐户作为 Agent 帐户,即 Snapshot、Distributor 和 Log Reader 来设置复制。
请参阅以下链接作为示例:
我的问题是:上面使用域帐户有什么问题,哪个更容易维护和管理?
replication sql-server sql-server-agent transactional-replication
我正在将应用程序从 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 中的等价物?
我希望在特定情况下命名。当您删除以逗号分隔的列并将其拆分为新表中的单独行时,这种类型的表称为什么?
在下面的例子中,我可以保留FavoriteFoods在最上面的桌子(阿尔伯特爱因斯坦会有“苹果派,汤”),但我希望每种食物都有自己的行。
第二个表是未标准化的“交叉连接”表吗?
如果你知道这个名字,请分享。知道名字后,我会做更多的研究。
sql-server ×8
t-sql ×2
audit ×1
except ×1
network ×1
optimization ×1
permissions ×1
postgresql ×1
replication ×1
role ×1