首页 技术 正文
技术 2022年11月21日
0 收藏 901 点赞 3,546 浏览 1350 个字

一、sql新增后返回主键

1,返回自增的主键:

 INSERT INTO 表名
(字段名1,字段名2,字段名3,…)
VALUES
(值1,值2,值3,…)
SELECT @@IDENTITY

2,返回主键也可以返回别的字段看需要:inserted.id这里的id可以是其他字段就是一个字段名,比如还可以返回inserted.name

 INSERT INTO 表名
(字段名1,…)
OUTPUT inserted.id
VALUES
(值1,…)

二、sql 使用 FOR XML PATH实现字符串拼接

sql中经常需要把多个行数据合成一行下面是利用 FOR XML PATH来实现的简单介绍。

1,把图一的转换为图二:

二、sql新增后返回主键|sql 使用 FOR XML PATH实现字符串拼接|sql如果存在就修改不存在就新增二、sql新增后返回主键|sql 使用 FOR XML PATH实现字符串拼接|sql如果存在就修改不存在就新增

SELECT articleID,
(SELECT CONVERT(varchar(10),tagID)+',' FROM articleTag_tb
FOR XML PATH('')) AS tagID FROM articleTag_tb GROUP BY articleID

以上是一个表的,下面看看多表关联的做法,其实是一样的只是连接表查询
这是一个文章对应多个标签的例子三张表:

CREATE TABLE [dbo].[article_tb](
[articleID] [int] NULL,
[articleName] [nvarchar](50) NULL
)CREATE TABLE [dbo].[articleTag_tb](
[articleID] [int] NULL,
[tagID] [int] NULL
)CREATE TABLE [dbo].[tag_tb](
[tagID] [int] NULL,
[tagName] [nvarchar](50) NULL
)

实现sql语句:

SELECT articleName,
(SELECT tagName+','FROM
(SELECT A.articleName,t.tagName FROM article_tb A
LEFT JOIN articleTag_tb AT ON AT.articleID=A.articleID
LEFT JOIN tag_tb T ON AT.tagID=T.tagID) temp
WHERE temp.articleName=TT.articleName
FOR XML PATH('')) AS tagName FROM article_tb TT

解释:
先把三个表做连接查询查找需要的字段,再用FOR XML PATH 自连接拼接字符串

三表连接查询结果为:              使用FOR XML PATH拼接后结果:

二、sql新增后返回主键|sql 使用 FOR XML PATH实现字符串拼接|sql如果存在就修改不存在就新增 二、sql新增后返回主键|sql 使用 FOR XML PATH实现字符串拼接|sql如果存在就修改不存在就新增

三、sql如果存在就修改不存在就新增

IF EXISTS (SELECT 1 FROM 表名 WHERE 条件)
UPDATE 表名 SET 字段=值 WHERE 条件
ELSE
INSERT INTO 表名(字段) VALUES(值)

真实使用举例:

if exists(select 1 from [UserRules] where UserID=@UserID)
update [UserRules] set [AttendanceRulesID]=@AttendanceRulesID where UserID=@UserID
else
insert into [UserRules] (UserID,AttendanceRulesID) Values(@UserID,@AttendanceRulesID)
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,030
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,520
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,368
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,148
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,781
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,859