每次启动 Sql Server 作业时,都会出现以下错误。我正在使用 SQL Server 2016。没有人知道如何修复它吗?
特定于应用程序的权限设置不会向用户授予具有 CLSID {2DC39BD2-9CFF-405D-A2FE-D246C976278C} 和 APPID {DB336D8E-32E5-42B9-B14B-58AAA87SQLCEB06} 的 COM 服务器应用程序的本地激活权限给用户SID (S-1-5-80-344959196-2060754871-2302487193-2804545603-1466107430) 来自在应用程序容器中运行的地址 LocalHost (Using LRPC) Unavailable SID (Unavailable)。可以使用组件服务管理工具修改此安全权限。
我正在尝试更改现有列并添加整数列。在添加整数列时,我将 DEFAULT 设置为 10,但在添加列时未设置默认值
ALTER TABLE dbo.Contacts ADD Col1 INT DEFAULT 10
Run Code Online (Sandbox Code Playgroud)
我需要执行显式更新脚本以将所有过去的记录设置为默认值
而如果该列为“非空”,则所有记录的默认值为 10。
ALTER TABLE dbo.Contacts ADD Col2 INT NOT NULL DEFAULT 10
Run Code Online (Sandbox Code Playgroud)
为什么可空列未设置为默认值?在我的实际表中,我有接近 8.5 亿条记录,我的新列是可以为空的列,我试图避免在我的 ALTER 表脚本之后再进行一次更新。方法是什么?
我正在考虑创建不可为空的列,默认值为 10,然后再次将约束更改为 NULL。这是好的方法吗?还有其他方法吗?
这可能有一个简单的答案,但我无法弄清楚,因为我仍然掌握在 SQL Server 中使用 R 的窍门。我有一段代码从 SQL Server 表中读取数据,在 R 中执行并返回一个数据框。
execute sp_execute_external_script
@language=N'R',
@script=N'inp_dat=InputDataSet
inp_dat$NewCol=max(inp_dat$col1,inp_dat$col2)
new_dat=inp_dat
OutputDataSet=new_dat'
@input_data_1=N'select * from IM_COMP_TEST_SQL2016.dbo.temp_table';
Run Code Online (Sandbox Code Playgroud)
我想将 new_dat 插入 SQL Server 表 ( select * into new_table from new_dat)。我该怎么做?
我有用于开发的 MSSQL Server Linux docker 映像,我需要在此实例上启用 XA 事务,我进行了大量搜索,但我找到的所有教程仅展示了如何从 Windows 机器执行此操作,没有在 Linux 上执行此操作。
那么如何从命令行启用 XA 事务,或者是否有相应的配置文件。
我有一个这种结构的表
Create Table Example (
[order] INT,
[typeID] INT
)
Run Code Online (Sandbox Code Playgroud)
有了这些数据:
order|type
1 7
2 11
3 11
4 18
5 5
6 19
7 5
8 5
9 3
10 11
11 11
12 3
Run Code Online (Sandbox Code Playgroud)
我需要根据订单获取每种类型的计数,例如:
type|count
7 1
11 **2**
18 1
5 1
19 1
5 **2**
3 1
11 **2**
3 1
Run Code Online (Sandbox Code Playgroud)
上下文
让我们说这张桌子是关于房子的,所以我在订单中有一个清单.所以我有
所以我需要显示信息浓缩.我需要说:
因此,计数基于订单.该DENSE_RANK函数将帮助我,如果我能够在RANK重新分区更改时.
我们可以在没有集成服务的情况下运行 SSIS 包吗?如果是,那么步骤是什么?如果否,那么最低要求是什么。
问题陈述如下:
我正在使用 SQL Azure 数据库来存储数据。我还有 Azure VM,我需要从中安排 SSIS 包。在此 Azure VM 中,我们没有安装集成服务。我的方法是在 Windows 调度程序中使用批处理文件来调度 SSIS 包。
我已经浏览了关于此的各种主题和帖子,但没有得到正确的答案。
所以...
select COUNT(*) cnt from docDocument d
inner join tblAttachment a on d.AttachmentID = a.ID
where
a.ContainerID = 1
Run Code Online (Sandbox Code Playgroud)
返回 6673
select COUNT(*) from tblAttachment
where
ContainerID = 1
Run Code Online (Sandbox Code Playgroud)
返回 10372
select COUNT(*) cnt from docDocument d
right join tblAttachment a on d.AttachmentID = a.ID
where
a.ContainerID = 1
AND
d.ID IS NULL
Run Code Online (Sandbox Code Playgroud)
返回 3699,这是有意义的 10372 - 6673 = 3699
SELECT COUNT(*) FROM
(
select ID from tblAttachment a
where
a.ContainerID = 1
Except
(
SELECT AttachmentId from docDocument
) …Run Code Online (Sandbox Code Playgroud) 我们的新DBA已将数据库带入单用户模式以执行分离附加操作,但错误地他关闭了该分区.从那时起,没有人能够访问该数据库.
我试图通过使用sp_who2找到会话ID,但它没有在该数据库上显示任何会话ID.
我在"Windows server 2016"上使用"SQL Server 2016 Standard Edition".
我有一个具有以下结构的表
ID PersonID Date
---------------------------
1 1 2017-04-01
2 1 2017-04-15
3 1 2017-05-13
4 1 2017-06-15
5 1 2017-08-13
6 1 2017-10-02
7 2 2017-05-04
8 2 2017-09-16
9 3 2017-04-23
10 3 2017-07-06
11 4 2017-06-01
Run Code Online (Sandbox Code Playgroud)
如果存在,我希望Select在每个Next和Previous行之间2017-05-01和之间行.2017-08-26PersonID
我想要这个结果:
ID PersonID Date
------------------------------
2 1 2017-04-15
3 1 2017-05-13
4 1 2017-06-15
5 1 2017-08-13
6 1 2017-10-02
7 2 2017-05-04
8 2 2017-09-16
9 3 2017-04-23
10 3 2017-07-06
11 4 2017-06-01
Run Code Online (Sandbox Code Playgroud) 我试图从表中过滤出行,其中[Description]列包含另一个表中列表中的单词.
我已经走到这一步,然后意识到我根本不知道如何做到这一点:
SELECT
p.Description --- a large amount of text
FROM
Products p
WHERE
p.Description NOT LIKE
(SELECT List.Word FROM List) --- pseudo code
Run Code Online (Sandbox Code Playgroud)
所以我需要类似的东西,NOT IN但实际上却是NOT LIKE.
如果没有我必须手动提取列表中的所有单词并执行NOT LIKE '%sofa%' AND NOT LIKE '%cushion%' AND NOT LIKE '%chair%'等等,这是否可能?