详解SQL Server的两个存储过程:sp_MSforeachtable/sp_MSforeachdb
1.简介: 作为DBA会经常需要检查所有的数据库或用户表,比如:检查所有数据库的容量;看看指定数据库所有用户表的容量,所有表的记录数...,我们一般处理这样的问题都是用游标分别处理处理,比如:在数据库检索效率非常慢时,我们想检查数据库所有的用户表,我们就必须通过写游标来达到要求;如果我们用sp_MSforeachtable就可以非常方便的达到相同的目的...
1.简介: 作为DBA会经常需要检查所有的数据库或用户表,比如:检查所有数据库的容量;看看指定数据库所有用户表的容量,所有表的记录数...,我们一般处理这样的问题都是用游标分别处理处理,比如:在数据库检索效率非常慢时,我们想检查数据库所有的用户表,我们就必须通过写游标来达到要求;如果我们用sp_MSforeachtable就可以非常方便的达到相同的目的...
适用于SQL Server2005以上版本SELECT 列名+',' FROM 表名 FOR XML PATH('') 这样将直接得到'a,b,c,d,d,e,',需要进一步处理去掉最后的逗号
create table tb(id int, value varchar(10))insert into tb values(1, 'aa')insert into tb values(1, 'bb')insert into tb values(2, 'aaa')insert into tb values(2, 'bbb')insert into t...
存储过程里只能return int 型数据,如果想返回字符串,需要使用out输出参数
alter FUNCTION F_StringSplitTable(@str NVARCHAR(MAX),@split NVARCHAR(10))RETURNS TABLEAS RETURN( SELECT B.idFROM (SELECT [value] = CONVERT(XML , '<v>' + REPLACE(@str , @sp...
定义和用法 DATEDIFF() 函数返回两个日期之间的天数。 语法 DATEDIFF(datepart,startdate,enddate) startdate 和 enddate 参数是合法的日期表达式。 datepart 参数可以是下列的值: datepart 缩写 年 yy, yyyy 季度 qq, q 月 mm, m...
SELECT IDENT_CURRENT('表名') + IDENT_INCR('表名') AS ID
UPDATE 表 SET 字段=REPLACE(cast(字段 AS nvarchar(max)),'被替换的内容','将要替换成的内容')
-- 禁用所有约束EXEC sp_msforeachtable @command1=N'ALTER TABLE ? NOCHECK CONSTRAINT ALL' -- 删除无外键约束的表中的数据EXEC sp_msforeachtable @command1=N'TRUNCATE TABLE ?', @whereand=N'AND NOT EXIST...
raiserror 的作用: raiserror 是用于抛出一个错误。 其语法如下: RAISERROR ( { msg_id | msg_str | @local_variable } { ,severity ,state } [ ,argument [ ,...n ] ] ) [ WITH option [ ,...n ] ] 简要说明一下...