我有 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) 多维数据集中的维度为我们提供了重复项,处理多维数据集时没有错误,但是在浏览多维数据集时我们可以看到重复项。
我们的维度中有一个层次结构,层次结构像Country -- State -- Area.
在 DB 中,维度数据如下所示。
+---------+------------+-----------+
| Country | State | Subarea |
+---------+------------+-----------+
| India | Karnataka | Bangalore |
| India | Telangana | Hyderabad |
+---------+------------+-----------+
Run Code Online (Sandbox Code Playgroud)
现在,当使用属性 Country 浏览多维数据集时,我们会看到 country 下的 2 个成员为“India”,当针对该属性选择度量时,销售额在这两个值之间破碎。
我们可以做任何工作来避免这个问题吗?
最近我在我的 PC 上安装了 SQL Server 2016。
这是我的服务器的详细信息:
Microsoft SQL Server 2016 (RC1) - 13.0.1200.242 (X64)
2016 年 3 月 10 日 16:49:45
版权所有 (c)
Windows 10 Pro 6.3(内部版本10586:)上的Microsoft Corporation企业评估版(64 位)
在我的 PC 上安装服务器后,尝试安装以下插件
问题:
SQL Pretty Printer甚至没有安装它会抛出错误,例如
但是SQL Pretty Printer站点说它适用于 SQL Server 2016,您可以查看链接。
下一个SQLSentry 计划资源管理器已成功安装,但插件未显示在SSMS.
版本: v2.8(内部版本 9.0.9252.0)
谁能帮我解决这个问题。请注意,两者都在 SQL Server 2014 中完美运行。
我注意到我可以在master数据库中创建表、模式、存储过程等。
我不知道是什么授予此权限。这很烦人,因为当我们在 SSMS 中打开一个 *.sql 文件时,它默认与master 相关。如果在CREATE没有注意到并设置正确的数据库上下文的情况下执行操作,则在master 中创建表。
如果我们没有权限,我们会得到一个错误,注意到它并更改数据库上下文。有了权限,表就创建好了,后面我们才看到错误,需要删除重新创建。我注意到在master中已经错误地创建了一些表。
我想撤销每个人类用户的许可,但我害怕破坏某些东西。我不知道某些 SQL Server 例程是否需要在那里创建的权限。
在不破坏 SQL Server 的情况下从master撤销创建权限的最佳方法是什么?
security sql-server permissions sql-server-2012 master-system-database
我有一个表,它有一个聚集唯一索引和一个与索引结构相同的非聚集主键。
IF OBJECT_ID('[dbo].[tblBAccountHolder]') IS NOT NULL
DROP TABLE [dbo].[tblBAccountHolder]
GO
CREATE TABLE [dbo].[tblBAccountHolder] (
[lngParticipantID] INT NOT NULL,
[sdtmCreated] SMALLDATETIME NOT NULL,
[strUsername] VARCHAR(20) NULL,
[strPassword] VARCHAR(20) NULL,
[tsRowVersion] TIMESTAMP NOT NULL,
CONSTRAINT [PK_tblAccountHolder]
PRIMARY KEY NONCLUSTERED ([lngParticipantID] asc),
CONSTRAINT [IX_tblBAccountHolder__lngParticipantID]
UNIQUE CLUSTERED ([lngParticipantID] asc)
WITH FILLFACTOR = 100)
Run Code Online (Sandbox Code Playgroud)
正如您在定义中看到的那样,只有一列:
CREATE UNIQUE CLUSTERED INDEX IX_tblBAccountHolder__lngParticipantID
ON [dbo].[tblBAccountHolder] ( [lngParticipantID] ASC )
Run Code Online (Sandbox Code Playgroud)
我想删除唯一索引,并更改主键以使其成为集群。我将保留相同的主键,只需将其从非集群更改为集群。
该表是事务复制的一部分,我只会在订阅者数据库上完成此操作。不在发布者中。
这是一个包含超过 9,293,193 行的表格。
我会搞砸复制吗?
问题是我必须删除主键约束并将其重新创建为集群。
这是我想在订阅者数据库中完成的操作:
drop INDEX IX_tblBAccountHolder__lngParticipantID
ON [dbo].[tblBAccountHolder]
GO
ALTER TABLE [dbo].[tblBAccountHolder]
drop CONSTRAINT …Run Code Online (Sandbox Code Playgroud) replication sql-server transactional-replication sql-server-2014 automation
我有一个表,其中有唯一的 ID、姓名、电子邮件和其他一些字段。我想将此表与电子邮件上的另一个表进行匹配,但有时电子邮件是共享的。唯一的ID不在表之间共享,但是当我识别它们时,我会将ID输入到另一个表中。名称并不唯一。
我想建立两轮连接。第一轮我想匹配电子邮件并附加 ID,第二轮将匹配 ID 并根据需要更新字段。
有没有办法查询表并仅获取那些具有唯一电子邮件的数据,而忽略那些共享电子邮件的数据?然后,我可以附加 ID 并重新查询那些没有 ID 的内容并加入名称。这还能用吗?
这是分区的一个很好的用途吗?我不太明白这些。
我有大约 150 万条记录。此查询适用于较小的数据,但每几十万条记录就会慢一秒。对于 150 万,查询明显困难。
我模拟了一个全新的 Code First 项目来验证问题与我的实现无关,并提供以下示例查询:
SELECT TOP 1 Widgets.*
FROM [WidgetSandbox].[dbo].[Widgets] Widgets
INNER JOIN [WidgetSandbox].[dbo].[Status] Statuses ON Widgets.StatusId = Statuses.Id
INNER JOIN [WidgetSandbox].[dbo].[Colors] Colors ON Widgets.ColorCode = Colors.ColorCode
INNER JOIN [WidgetSandbox].[dbo].[Sizes] Sizes ON Widgets.SizeId = Sizes.Id
WHERE Statuses.Name = 'Available'
AND Colors.Name = 'Red'
ORDER BY Sizes.DiameterInches
Run Code Online (Sandbox Code Playgroud)
DiameterInches 是一个int, 作为我实际代码中“PriorityLevel”的隐喻。
如果我注释掉ORDER BY Sizes.DiameterInches,它会立即返回,但如果我想找到“最小的可用红色小部件”,它就会爬行。
有没有更好的办法?
执行计划 XML:https : //gist.github.com/RobertBaldini/57c8b61d135cc5c84c38b2da243611ad
DDL:https : //gist.github.com/RobertBaldini/3740c7bb85eea47d7fe63cb8602ac2d6
回购(数据加载器需要几分钟):https : //github.com/RobertBaldini/WidgetSandbox
当我在网络共享驱动器中进行备份时,下面提到了 TSQL。
Use DatabaseName
Go
Backup Database DatabaseName
To Disk=N'H:\DatabaseBackup\DatabaseName.bak';
Go
Run Code Online (Sandbox Code Playgroud)
我在 SSMS 中收到以下错误。
Msg 3201, Level 16, State 1, Line 1
Run Code Online (Sandbox Code Playgroud)
无法打开备份设备'H:\DatabaseBackup\DatabaseName.bak'。操作系统错误 3(系统找不到指定的路径。)。
Msg 3013, Level 16, State 1, Line 1
Run Code Online (Sandbox Code Playgroud)
BACKUP DATABASE 异常终止。
因为我已经通过这个 TSQL 检查了 'xp_cmdshell' 。run_value & config_value 如下:
name minimum maximum config_value run_value
xp_cmdshell 0 1 1 1
Run Code Online (Sandbox Code Playgroud)
注意:这里H是我的网络共享。
任何建议将不胜感激。
我有一个联系人(ID、名字、姓氏、中间名)。
例如:
| ID | FirstName | LastName | MiddleName |
|====|===========|==========|============|
| 1 | Mark |Jordan | E |
|----|-----------|----------|------------|
| 2 | James | Blunt | NULL |
|----|-----------|----------|------------|
Run Code Online (Sandbox Code Playgroud)
我要输出
Mark E. Jordan
James Blunt
Run Code Online (Sandbox Code Playgroud)
因此,如果 MiddleName 不为空,则添加一个 '.' 之后,否则输出空值。
我知道isnull函数,但是我需要的是isnotnull函数。如何完成查询?
到目前为止我的查询:
select FirstName + ' ' + isnull(...) + LastName
from Contact
Run Code Online (Sandbox Code Playgroud) 我为足球比赛创建了数据库。
我有 2 个具有多对多关系的表,因此我还创建了一个连接表:
CREATE TABLE referee (
id_referee INT IDENTITY PRIMARY KEY,
id_type_referee INT NOT NULL,
first_name varchar(20) NOT NULL,
last_name varchar(30) NOT NULL,
date_of_birth DATE NOT NULL,
FOREIGN KEY(id_type_referee) REFERENCES type_referee(id_type_referee)
);
Run Code Online (Sandbox Code Playgroud)
CREATE TABLE match (
id_match INT IDENTITY PRIMARY KEY,
id_stadium INT NOT NULL REFERENCES stadium(id_stadium),
id_season INT NOT NULL REFERENCES season(id_season),
date_of_match DATE NOT NULL,
audience INT CHECK (audience>=0)
);
Run Code Online (Sandbox Code Playgroud)
CREATE TABLE match_referee(
id_referee INT NOT NULL,
id_match INT NOT NULL,
PRIMARY KEY(id_referee,id_match), …Run Code Online (Sandbox Code Playgroud) sql-server ×10
automation ×1
backup ×1
constraint ×1
duplication ×1
functions ×1
performance ×1
permissions ×1
plugins ×1
replication ×1
security ×1
ssas ×1
ssms ×1
t-sql ×1
windows-10 ×1