我有 36 个 Microsoft SQL Server VM,每个都有一个以 _Sec 结尾的特定数据库作为数据库名称。该数据库中有 2 个表,我需要在单个查询中从中获取数据:tblConnGroups和tblConnGroupsDet.
tblConnGroups 有 3 列我需要包含在结果中
tblConnGroups.ID
tblConnGroups.GroupName
tblConnGroups.Provisional
Run Code Online (Sandbox Code Playgroud)
tblConnGroupsDet 结果中基本上有一个列。
tblConnGroupsDet.GroupID
tblConnGroupsDet.DBName
Run Code Online (Sandbox Code Playgroud)
tblConnGroups.ID是在使用的密钥tblConnGroupsDet.GroupID,然而,在tblConnGroups该ID领域具有一对多的关系到GroupID在字段tblConnGroupsDet。
Connection Group Name 只出现在tblConnGroups带有它的ID, 和其他信息中,但是GroupID将出现在tblConnGroupsDet带有成员数据库名称的每一行中。
USE [Name_Sec];
GO
SELECT ID,Groupname,Provisional
from [tblConnGroups]
ORDER BY ID ASC
ID GroupName Provisional
514 Name_FY0910 0
844 Name_FY1011 0
1588 NameTest_FY1516 1
USE [Name_Sec];
GO
SELECT GroupID,DBName
FROM …Run Code Online (Sandbox Code Playgroud) 创建新表时,示例有时会显示用CONSTRAINT关键字定义的主键和外键,有时则不显示CONSTRAINT关键字。是使用CONSTRAINT关键字为约束命名的唯一原因吗?或者您是否有其他原因选择使用或不使用此关键字?
示例 1(不带关键字):
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
Run Code Online (Sandbox Code Playgroud)
示例 2(使用关键字):
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT PK_Person PRIMARY KEY (ID)
);
Run Code Online (Sandbox Code Playgroud)
除了分配指定的约束名称之外,DBMS 对这两个示例的看法是否不同?我特别在考虑 SQL Server、Oracle、MySQL 和 PostgreSQL。
当我从 SQL Server 中的表中删除行时,数据库文件的大小不会变小。这是为什么?即使我从每个表中删除每一行,文件大小仍然与删除前一样大。
我有兴趣了解原因,而不是如何缩小数据库文件。
假设我在 SQL Server 2008 中有一个这样的表:
id | name | qty
-------------------
1 | john | 1
2 | bill | 3
3 | mary | 2
4 | jill | 5
Run Code Online (Sandbox Code Playgroud)
我想查询此表并为每批返回 1 行,最多为 2。因此,查询结果如下所示:
id | name | qty
-------------------
1 | john | 1
2 | bill | 2
2 | bill | 1
3 | mary | 2
4 | jill | 2
4 | jill | 2
4 | jill | 1
Run Code Online (Sandbox Code Playgroud)
这可以在不使用光标的情况下整齐地完成吗?这可以使用 unpivot 吗?
顺便说一下,该 …
为了加密 SQL 数据库,我运行以下命令:
CREATE CERTIFICATE <certname> ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>'
WITH SUBJECT = 'certificate subject', EXPIRY_DATE = '20291031';
go
USE <databasetoencrypt>;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE <certname>;
GO
Run Code Online (Sandbox Code Playgroud)
尝试执行CREATE DATABASE ENCRYPTION KEY命令时,我收到此消息,但不知道该怎么做:
无法使用证书“名称”,因为其私钥不存在或不受数据库主密钥的保护。SQL Server 需要能够自动访问用于此操作的证书的私钥。
当我ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>'在CREATE CERTIFICATE命令中省略期间时,它会起作用。但是,我需要创建一个受密码保护的证书。
你有什么主意吗?!谢谢你。
我创建了一个包含 100 多万行的分区表,并datetime在创建表时不小心将错误的列指定为分区键。
是否有一种简单的方法可以将分区列从一datetime列更改为另一列。就我而言,我们有一个列InsertedDate和一个CompleteDate,我不小心使用了第一个而不是第二个。
我正在尝试从本地 postgres 数据库双表中选择 now():
select now() from dual;
Run Code Online (Sandbox Code Playgroud)
它不返回任何行。只打印列名now(yyyy-MM-dd HH:mm:ss.ffffff)
我错过了什么无法获得系统时间?
我正在运行连接到 SQL Server 2012 数据库的 Web 服务。在短时间内(大约 5 秒)内执行多个删除查询时,实际执行的查询似乎是随机的。当一次运行一个或在每次执行之间放置 0.5 秒的延迟时,它们运行完美。
查看 SQL 分析器,所有查询都显示为RPC:Completed即使它们实际上并未删除表中的行。我检查了表,数据仍然存在,然后将查询从 Profiler 复制并粘贴到 SSMS 中,这影响了一行并将其删除。
所以我假设 Web 服务运行良好,问题出在它的数据库端。探查器中有没有办法查看查询是否成功?什么可能导致这实际上不影响行?
没有触发器。仅使用不同的参数运行相同的查询。只有数据通常是按顺序变化的。刚才没有其他查询在数据库上运行。
我添加了客户端站点日志记录,如果它删除该行,它实际上会返回 1,如果它不删除该行,它会返回 0。然而,即使它出现为 0,Profiler 也会显示它已经运行了查询,但似乎没有影响它。当我通过 SSMS 运行查询时,它确实会影响该行。
未收到来自 Web 服务的任何错误,并且查询通过 SSMS 运行良好。只有在快速连续多次运行时似乎不会删除。我确实同意它很可能针对不同的行,但是当它在 SSMS 中运行正常时看不到它是如何发生的。
CREATE TABLE dbo.ContractDates2HumanAssets
(
iContractDate2HumanAssetID int IDENTITY(1,1) NOT NULL,
iContractDateID int NOT NULL,
iHumanAssetID int NOT NULL,
cCategory nvarchar(256) NOT NULL,
cHR_x0020_ID nvarchar(256) NOT NULL,
cCD_x0020_ID nvarchar(256) NOT NULL,
CONSTRAINT PK_ContractDates2HumanAssets PRIMARY KEY CLUSTERED
(
iContractDate2HumanAssetID ASC
) WITH (PAD_INDEX = …Run Code Online (Sandbox Code Playgroud) 在 SQL Server 中,我们可以设置多个电子邮件配置,其中只有一些设置为默认值。
我尝试使用以下查询来获取帐户列表:
select *
from msdb.dbo.sysmail_profile p
join msdb.dbo.sysmail_profileaccount pa on p.profile_id = pa.profile_id
join msdb.dbo.sysmail_account a on pa.account_id = a.account_id
join msdb.dbo.sysmail_server s on a.account_id = s.account_id
Run Code Online (Sandbox Code Playgroud)
有什么方法可以识别默认邮件配置文件吗?
如果呈现的数据4-dimension中每个维度都依赖于分层的 3 级聚合,例如(国家、城市、街道),那么我们可以将其总结为4096多种方式!
我们知道对于具有
n维度的多维数据集,其中没有维度是分层的,我们有2^n汇总方式,但在这种情况下,每个维度都有分层的 3 级聚合4^4=256方式。
为什么上面的说法提到有4096办法呢?
如果由于我的英语用法缺陷而无法很好地说明我的问题,请参阅:
这是我的公式,但是我的答案与 4096 非常不同!
sql-server ×7
constraint ×1
cross-apply ×1
cube ×1
cursors ×1
delete ×1
olap ×1
oracle ×1
partitioning ×1
postgresql ×1
profiler ×1
select ×1
t-sql ×1
timestamp ×1
transparent-data-encryption ×1
unpivot ×1