SQL Server 笔记

本文分享了SQL编程中实用技巧,包括处理换行符、多字段存在性查询、两表数据叠加、组内序号生成及数据库备份解决方案。适用于数据库管理和数据处理的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笔记:

  1. 换行符 CHAR(10)
    举例:
    将换行符改成空格
    UPDATE dbo.goodsInfo SET goods_name=REPLACE(gModel_color,CHAR(10),’ ‘) WHERE gModel_color LIKE ‘%’+CHAR(10)+’%';

2.多字段同时存在/不存在另一个表的查询
表a 字段 para1 para2 para3 para4
表b 字段 para1 para2 para5 para6
查询表a中的para1 para2 不存在于表b的数据
select * from 表1 where 表1.para1 not in (select 表2.para1 from 表2 where 表1.para2=表2.para2);

3.两表叠加查询 (查询内容列名一致)
SELECT * FROM dbo.第一批采购 UNION ALL SELECT *FROM dbo.第二批采购 ;

4.组内序号
订单号 商品编码 组内序号
001 a 1
001 b 2
002 b 1
003 b 1
003 c 2

SELECT *, RANK() OVER(PARTITION BY src_tid ORDER BY olID ASC) AS Rank FROM dbo.wdtOrderList

编辑组内流水号
UPDATE dbo.wdtOrderList
SET gnum = l2.gnum
FROM
(
SELECT wol.olID,
RANK() OVER (PARTITION BY wol.src_tid,
wol.trade_id,
wol.wdtOMNo
ORDER BY olID ASC
) AS gnum
FROM dbo.wdtOrderList wol
LEFT JOIN dbo.wdtOrderMain wom
ON wol.trade_id = wom.trade_id
WHERE wom.wdtOMNo = @wdtOMNo
) l2
WHERE dbo.wdtOrderList.gnum IS NULL
AND dbo.wdtOrderList.olID = l2.olID;

5.通过 数据库维护计划 备份数据库失败
一个很奇葩的问题,在阿里云、腾讯云ecs内创建的数据库实例,通过外网smss直接备份可以成功,但是创建的维护计划、sql server代理 进行备份就会失败。检查了各种配置、脚本都没查到原因,后来找到原因竟然是 ecs的安全组策略没有对数据库所在的ecs本机开放入的权限,把本机的内外网ip和所有端口添加到组策略放行后,维护计划的备份即可成功。

新手,刚开始学习并记录博客。
如果以上方法对你有帮助,或需要改善,请留言。谢谢。

### SQL Server 学习笔记与资源 #### 一、基础知识入门 对于初学者而言,掌握SQL Server的基础知识至关重要。这不仅限于了解如何安装和配置SQL Server环境,还包括熟悉其基本架构以及通过管理工具如SQL Server Management Studio (SSMS) 进行日常管理和维护工作[^1]。 #### 二、数据操作语言(DML) 深入理解DML语句是必不可少的一部分。这些命令允许用户执行诸如向表中插入新记录(`INSERT`)、更新现有记录(`UPDATE`)或从数据库中移除特定条目(`DELETE`)的操作。熟练运用DML可以有效地帮助开发者实现对数据的有效控制和处理[^2]。 #### 三、服务启动与停止 当涉及到服务器级别的任务时,比如启动或关闭SQL Server实例,则可能需要用到操作系统层面的方法。例如,在Windows批处理文件(.bat)中编写指令来自动化这一过程是非常实用的技术手段。一旦掌握了这种方法,就可以更方便地部署应用程序并确保它们始终处于最佳运行状态[^3]。 #### 四、动态SQL的应用场景 为了提高灵活性和效率,有时会采用动态构建SQL查询的方式来进行复杂的数据检索或批量操作。此时就需要定义一些变量存储必要的参数值,并利用字符串拼接或其他编程技巧生成最终可执行的SQL脚本。下面给出了一段简单的T-SQL代码片段作为示范: ```sql DECLARE @table CHAR(20), @sql NVARCHAR(MAX); SET @table = 'example_table'; SET @sql = N'SELECT * FROM ' + QUOTENAME(@table); EXEC sp_executesql @sql; ``` 这段代码展示了如何声明两个变量`@table` 和 `@sql`, 并将其应用于构建一个针对指定表格的选择查询[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值