不常用的SQL语句记录

时间:2022-12-13 06:05:19

只知道字段名,查询哪些表有该字段:假如字段名为Index

select sysobjects.name as tablename,syscolumns.name as columnname
from syscolumns join sysobjects on sysobjects.id = syscolumns.id

where syscolumns.name like '% Index%'

 
 
查询数据库中所有的表名:
 

SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'

 
查看储存过程的内容:
 
按名查找存储过程: 
EXEC Sp_HelpText '存储过程名'; 
 

按内容查找存储过程:

select b.name from kbmp.dbo.syscomments a,kbmp.dbo.sysobjects b where a.id=b.id  and b.xtype='p' and a.text like '%if_check%';

跨数据库查询

--1.建立链接服务器,通过@datasrc指定数据源,适合链接其他多种数据库
EXEC master.dbo.sp_addlinkedserver @server = N'Link',
                                   @srvproduct='ms', 
                                   @provider=N'SQLNCLI',                                    
                                   @datasrc=N'远程服务器ip,端口'
 
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Link',
                                    @useself=N'False',
                                    @locallogin=NULL,
                                    @rmtuser=N'用户名',
                                    @rmtpassword='密码'
--2.查询数据

select * from Link.[数据库名].[dbo].[表名];

Link 是自定义的名字,下次再需要读取Link的数据库时只需要第二步,第一个可省略

PS:转载请注明出处。