SQLSERVER计算库,必会用的语句(大全)

原创
小哥 3年前 (2022-11-16) 阅读数 45 #大杂烩

当一个数据库中有很多存储过程,然而你想快速的查看某个存储过程的内容,该怎么办呢,一段SQL就可以了,如下:

SELECT obj.Name 存储过程名, sc.TEXT 存储过程内容  
FROM syscomments sc  
INNER JOIN sysobjects obj ON sc.Id = obj.ID  
WHERE sc.TEXT LIKE %存储过程的名字%

判断数据表或临时表是否存在,如下:

--数据表是否存在:(把SQL中的[表名]替换成你要判断的表名)
IF EXISTS  (SELECT  * FROM dbo.SysObjects WHERE ID = object_id(N[表名]) AND OBJECTPROPERTY(ID, IsTable) = 1) 
PRINT 存在

--临时表是否存在:(把SQL中的#TEMP_TBL替换成你要判断的临时表名)
if exists (select * from tempdb.dbo.sysobjects where id = object_id(Ntempdb..#TEMP_TBL) and type=U)
PRINT 存在

向已存在或者不存在目标表插入数据结果,如下:

一:如果要插入目标表不存在:

select * into 目标表 from 表 where ...

--如果你只想到目标表的表结构不要数据,可以这样写:
select * into 目标表 from 表 where 1=2

二:如果要插入目标表已经存在:

insert into 目的表 select * from 表 where 条件

存储过程中快速获取一个select的行数,如下:

--之前我会这样写
SELECT * FROM 表
SET @count = COUNT(*) FROM 表

--现在用@@ROWCOUNT,数据库中自带的全局变量
SELECT * FROM 表
SET @count = @@ROWCOUNT

修改数据表列类型,如下:

alter table 表名 alter column  列名 类型;
例如:
alter table [User] alter column [UserName] Nvarchar(100);

添加一列,如下:

alter table 表名 add 列名 类型;
例如:
alter table [User] add [UserName] Nvarchar(100);

表里有自增列时,清空表数据让ID从1开始自增,如下:

truncate table 表名

就这几个还不算大全,哈哈哈,以后碰到会慢慢更新的!!!

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门