[整理]SQL Server 常识和技巧
1、查找注释
select o.name TableName,c.name ColName,p.value Remark from sysproperties p
join sysobjects o on p.id=o.id
join syscolumns c on o.id=c.id and c.colid=p.smallid
where p.name='MS_Description' --MS_Description表示微软注释
and c.name='col' --列名
and o.name='TABLE1' --表名
2、 利用SQL Server的扩展属性象access一样显示列的注释
access的设计视图有个不错的功能-----设计列的注释,这可以让设计者清楚地看到每个列的意义。一般的sql server建表时没有这个功能,但是他有扩展属性,这个功能也不错,可以把注释写到这里面,然后把相应的结果作为rs返回到页面进行应用
我想,这在动态显示数据库的table的列信息时候可能比较有用(记得好像以前论坛里也有人问到过)
具体方法如下:(也可以在EM,QA里面通过右击相应列---扩展属性,进行添加)
EXEC sp_addextendedproperty 'CRid', '表示ID', 'user', dbo, 'table', 'clientInfo', 'column',CRid
go
EXEC sp_addextendedproperty '人名', '显示客户姓名', 'user', dbo, 'table', 'clientInfo', 'column',Rname
go
select name,value from ::fn_listextendedproperty
(default,'user','dbo','table','clientInfo','column',default)
go
name value
---------------------------------------------
CRid 表示ID
人名 显示客户姓名
这样就可以当作结果集用了
这里吧 系统多表值函数 fn_listextendedpeoperty简单说一下
查询的时候,因为是系统多表值函数所以前面必须有 ::
第1个是指定属性名称----如果用default或者NULL显示全部
第2-7个参数,可以参看sql的对象命名规则
如果用default也是指定全部
3、查询表结构
可以使用内置的存储过程sp_MShelpcolumns。
如查询表B_RWZL的结构:
sp_MShelpcolumns 'dbo.B_RWZL'
4、查询清单
表清单
select [name] from sysobjects where xType = 'U'
主健清单
select [name] from sysobjects where xType = 'PK'
select table_name,column_name,1as pk from
INFORMATION_SCHEMA.KEY_COLUMN_USAGE k where exists
( select s.id from sysobjects s where s.xtype = 'pk' and s.name = k.constraint_name )
外键清单
select [name] from sysobjects where xType = 'F'
select table_name,column_name,1as fk from
INFORMATION_SCHEMA.KEY_COLUMN_USAGE k where exists
( select s.id from sysobjects s where s.xtype = 'F' and s.name = k.constraint_name )
默认值清单
select [name] from sysobjects where xType = 'D'
表的列清单
select [name] from syscolumns where id in ( select id from sysobjects where [name]='Table1')
5 防止注入式攻击













6 Like查询的时候转义
















【推荐】国内首个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——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述