1、约束的操作
Cascade, No Action理解
当在创建约束时选上Cascade,或代码创建时添加ON Delete CASCADE,当在主表删除一行记录时, 外表相关联的记录都会同时删除
当在创建约束时选上No Action,或代码创建时添加ON Delete No Action,当在主表删除一行记录时, 如果外表关联有数据, 则会提示出错
上面的只是Delete, 其实Update也是一样的
2、Unique约束
如主键一样,让一列数据只能有唯一的值
3、子查询
.NET面试者一般在笔试时都会有一条, 选出表A里面第10-15行数据(ID是不连续的)
这样就需要子查询来实现了, 记得五年前我第一次看到这个问题时, 我也不知道怎回事, 为什么不通过ID来查询呢?
其实有时ID的不连续的, 所以需要用子查询了
select top 5 * from [A] where orderid not in (select top 9 orderid from [A] order by Orderid asc) order by Orderid asc
4、select into 和 insert into select 查询插入语句的区别
select into from要求目标表不存在,因为在插入时会自动创建, 多用来创建临时表时用到
insert into select 要求目标表存在,只是把数据复制过来
5、视图的update, Insert数据
update useraccountview set code='CA001' where userid=2
Insert数据其实是在视图里面创建触发器(Instead of)来插入数据, 在触发器中通过inserted来取得需要的数据, 然后插入相应的表
所以在视图中也是可以update与insert数据, 不过建议不要在视图中操作, 因为考虑不周会引起好多麻烦的问题, 如果多表的插入或update, 建议用存储过程来实现
6、视图加密
Create view User_View
with cncryption
AS
多上with cncryption就可以加密了, 这样就查看不到视图的内容, 另外 还有一个with schemabinding也有一点作用。 哈哈
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?