Sql server系统表
存放数据库中的各个对象!
最重字段
1.1 Name,Id,Crdate,Xtype (U :用户表,V:视图,Tr:触发器,P:存储过程,S,系统表)
1.2 常用函数 Object_ID('对象名'),Object_Name
此外我们如果想生成1,2,3,4,5这样的等差数列,可以这样做
Select Identity(int,1,1) As Id Into # From SysObjects,SysColumns
2.SysColumns
存放各列的信息
最重字段
2.1 Name,Id,Colid--字段在表中存放的顺序
设一个表中字段有很多,想列出某表除某字段外的所有字段,可以这样写
Declare @Fields Varchar(5000)
Select @Fields=@Fields+Name
From SysColumns
Where Id=Object_ID('Test') and Name Not In ('字段1','字段2')
又如如何用列序号选择特定列
Create Function F_ColumnOrder(@TableName Varchar(10),@Colid Int)
Returns Table
As
Return
Select Name From SysColumns
Where ID=Object_ID(@TableName) And Colid=@Colid
--Try
Select * From Dbo.F_ColumnOrder('Users',2)
3.SysFiles
如果我们想知道SQL的数据文件存放目录的话,可以用
Select FileName From SysFiles
4.SysComments
保存视图或存储过程的语句!
5.Sysforeignkeys
fkeyid:外键表对象ID,rKeyid:主键表对象ID
有时我们想把数据库中的所有表都去掉,但是有约束的存在,有些表必须在主表前删除,否则就会报错,
这种情况下我们就通过该表来实现
**********************************************************
Master表中的系统表
SysDataBases
重要字段
1.1 Name,Dbid,Crdate
常用函数 DB_ID('数据库名')
sysaltfiles
保存各个数据库的MDF文件的物理地址
SysProcesses
保存进程信息
Kill spid 杀掉某进程
删除某数据库中表
Exec Sp_MsForEachTable 'Truncate Table ?'
注意:有约束的不能删除,会出错的
6.如果想改系统表怎么办?
2种方法
1.通过查询分析器改
用如下语句:
Exec Sp_Configure 'allow updates',1--允计修改
Reconfigure with override
Exec Sp_Configure 'allow updates',0--不允计修改
Reconfigure with override
2.通过企业管理器改
在SQL实例上右键-属性-允计修改系统目录直接进行修改
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端