小编Sma*_*uys的帖子

将 Where 子句与 Merge 一起使用

在下面的语法中,When Matched如果更新表中的值与员工表中的值不同,是否可以只更新?类似于我下面的 DDL - 但当然这会引发错误并且不起作用。

我应该在语法中更新什么以仅更新不同的行?我想要的更新不是迭代匹配的每一行,而是emp44 & emp55因为地址不同而只更新。

出现的错误是

消息 156,级别 15,状态 1,第 24 行
关键字“WHERE”附近的语法不正确。

句法

  DECLARE @Emp Table (empid varchar(10), empaddress varchar(100))
  Insert Into @Emp Values 
  ('emp11', '111 No Blue'), 
  ('emp22', '222 No Blue'),
  ('emp33', '333 No Blue'), 
  ('emp44', '444 No Blue'),
  ('emp55', '555 No Blue');

Declare @EmpUpdates TABLE (empid varchar(10), empaddress varchar(100))
Insert Into @EmpUpdates Values
('emp11', '111 No Blue'), 
('emp22', '222 No Blue'),
('emp33', '333 No Blue'), 
('emp44', '999 No Blue'),
('emp55', …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2008-r2 merge

14
推荐指数
1
解决办法
4万
查看次数

使用 Send DBMail 发送多个附件

我以为你只需要用 a 分隔两个文件名,;但我的语法失败并出现错误

Msg 102, Level 15, State 1, Line 251
Incorrect syntax near '@filename2'.
Run Code Online (Sandbox Code Playgroud)

这是我的完整语法,我需要做什么才能将两个文件附加到我的电子邮件中?

Declare @filename1 varchar(max), @filename2 varchar(max)
Set @filename1 = 'C:\Testfiles\Test1.csv'
Set @filename2 = 'C:\Testfiles\Test2.csv'

EXEC msdb.dbo.sp_send_dbmail
  @profile_name = 'Mod',
  @from_address = 'modis@modisglobal.com',
  @recipients= 'rsmith@gmail.com',
  @subject= 'Test Email', 
  @body = @body1,
  @file_attachments = @filename1;@filename2;
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2008-r2

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

计算字段更新每一行

我在表中添加了一个计算字段,并且只想更新NULL行(或“新”行)。出了点问题,DateTime当插入 1 行时,我的表中的每一行都用当前更新。这是Create Table语法,我必须做什么才能仅使用当前更新“新”行DateTime

CREATE TABLE [dbo].[SE](
[dbID] [int] IDENTITY(1,1) NOT NULL,
[uqID] [varchar](31) NOT NULL,
[POD] [varchar](255) NULL,
[EC] [varchar](255) NULL,
[S1] [varchar](35) NULL,
[S2] [varchar](35) NULL,
[S3] [varchar](35) NULL,
[S4] [varchar](35) NULL,
[S5] [varchar](35) NULL,
[S6] [varchar](35) NULL,
[S7] [varchar](35) NULL,
[PSD] [varchar](50) NULL,
[DS] [datetime] NULL,
[CN] [varchar](max) NULL,
[autodate]  AS (getdate()),
PRIMARY KEY CLUSTERED 
(
[dbID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,     ALLOW_ROW_LOCKS = …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2008-r2 default-value computed-column

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

从 Select 语句返回结果并在变量中存储计数

我想执行我的 select 语句,但也将返回的行数存储到一个变量中。这就是我的 DDL 的设置方式,如何将 Select 语句中的行数存储在我的变量中@returnedrows

Declare @returnedrows int;

Insert Into pinkpurplegreen (field1, field2, field3, field4, field5)
Select field1, field2, field3, field4, field5
FROM blue

Select * FROM pinkpurplegreen
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2008-r2

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