Sql 常用语句

--删除重复数据 --(重复全备份) select att.* into RnsAttachmentsDeleteAllBack0810 from RnsAttachments att inner join (select t.ForeignId,t.ProjectForeignId from RnsAttachments t where t.ProjectForeignId is not null group by t.ForeignId,t.ProjectForeignId having count(1)>1) tt on att.ForeignId= tt.ForeignId and att.ProjectForeignId = tt.ProjectForeignId; --重复数据只留一条 select ProjectForeignId,ForeignId,max(Id)maxid into RnsAttachmentsNotDeleteId from RnsAttachmentsDeleteAllBack0810 group by ProjectForeignId,ForeignId ; --删除不留下来的数据。 delete del from RnsAttachments del inner join RnsAttachmentsDeleteAllBack0810 Delsearch on del.id=Delsearch.id left join RnsAttachmentsNotDeleteId noDel on del.id=noDel.maxid where noDel.maxid is null;

SELECT ( CASE WHEN a.colorder = 1 THEN d.name ELSE '' END ) AS 表名 ,--如果表名相同就返回空 a.colorder AS 字段序号 , a.name AS 字段名 , ( CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = 1 THEN '√' ELSE '' END ) AS 标识 , ( CASE WHEN ( SELECT COUNT(*) FROM sysobjects--查询主键 WHERE ( name IN ( SELECT name FROM sysindexes WHERE ( id = a.id ) AND ( indid IN ( SELECT indid FROM sysindexkeys WHERE ( id = a.id ) AND ( colid IN ( SELECT colid FROM syscolumns WHERE ( id = a.id ) AND ( name = a.name ) ) ) ) ) ) ) AND ( xtype = 'PK' ) ) > 0 THEN '√' ELSE '' END ) AS 主键 ,--查询主键END b.name AS 类型 , a.length AS 占用字节数 , COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 长度 , ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小数位数 , ( CASE WHEN a.isnullable = 1 THEN '√' ELSE '' END ) AS 允许空 , ISNULL(e.text, '') AS 默认值 , ISNULL(g.[value], '') AS 字段说明 FROM syscolumns a LEFT JOIN systypes b ON a.xtype = b.xusertype INNER JOIN sysobjects d ON a.id = d.id AND d.xtype = 'U' AND d.name <> 'dtproperties' LEFT JOIN syscomments e ON a.cdefault = e.id LEFT JOIN sys.extended_properties g ON a.id = g.major_id AND a.colid = g.minor_id where d.name in('RnsEmployees','RnsProjects','RnsProjectRelatives','RnsProjectCompanyRelatives','RnsCompanies','RnsJobMapping') ORDER BY a.id , a.colorder;

select ROW_NUMBER() OVER (ORDER BY a.object_id) AS No, a.name AS 表名, isnull(g.[value],'-') AS 说明 from sys.tables a left join sys.extended_properties g on (a.object_id = g.major_id AND g.minor_id = 0);

--增加表说明 EXECUTE sp_addextendedproperty N'MS_Description','表说明',N'user',N'dbo',N'table',N'表名',NULL,NULL EXECUTE sp_updateextendedproperty N'MS_Description','项目类型',N'user',N'dbo',N'table',N'ProjectType',NULL,NULL; --增加字段 ALTER TABLE 表名 ADD 字段名 int not NULL default 8; --增加字段注释 DemandOrderCostList:表名、CarType:表对应字段、收费车型:注释内容 EXEC sp_addextendedproperty 'MS_Description', '收费车型', 'FreightForwarder', dbo, 'table', DemandOrderCostList, 'column', CarType; --增加字段注释 EXEC sp_addextendedproperty @name='MS_Description', @value=N'收费车型', @level0type =N'SCHEMA', @level0name=N'dbo', @level1type ='table', @level1name='DemandOrderCostList', @level2type=N'COLUMN',@level2name=N'CarType'; --sp_addextendedproperty的使用,8个参数(@name与@value,@level0type与@level0name,@level1type与@level1name,@level2type与@level2name),4对, --@name:为列添加扩展信息,@name就等于'Caption' -- 为列添加说明信息,@name等于'MS_Description' --@value是要添加的值(如:列注释) --@level0type:指定我们要修改的列的表所于那个数据库架构,'user'或'SCHEMA'(推荐,因为在sql server的未来版本中,将删除'user') --@level0name指定我们要修改的表所在架构的名称 如:dbo --@level1type:指明我们要修改的列所属对象是表,还是视图等。本篇是修改表中的列,所以为'table', --@level1name: 指明要修改的列所属表的名称 --@level2type:指明我们要修改的对象是列,还是主键,还是约束等。本篇修改的是列,所以为'column' --@level2name:指明要修改列的列名
增加默认值:
ALTER TABLE PriceSheet ADD CONSTRAINT DF_PriceSheet_IsMust DEFAULT 0 FOR IsMust;
创建索引:
更多内容参见:https://blog.51cto.com/u_16099164/7883712
主键索引:
ALTER TABLE t_EnterpriseHead ADD CONSTRAINT PK_EnterpriseHead_001 PRIMARY KEY CLUSTERED ( EnterpriseCode );
维一索引:
create unique index uq_t_EnterpriseHead001 on t_EnterpriseHead (EnterpriseCode)
https://blog.51cto.com/u_16099164/7883712
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构