Skip to main content

SP_MSForeachtable


Some times we need to query on the all the tables in one data base single statement. We use SP_MSForeachtable this is known as undocumented stored procedures . These all are system stored procedures. These stored procedures is place in Master database.


NOTE:

Please do not run all these queries in Production environment

Example:

create database UnDocumentedStoredProcedure

use UnDocumentedStoredProcedure


create table Emp
(
ID int identity(1,1),
Name varchar(50),
Salary int
)

insert into Emp(Name,Salary) values('rakesh',8000),('raju',9000)


create table Dept
(
ID int identity(1,1),
DeptName varchar(100)
)

insert into Dept(DeptName) values('CSE'),('IT')


We are created new database and also created some table with some dummy data.

Select all tables data:

exec sp_MSForeachtable 'select * from ?'

Checking all tables names with number of rows:

exec sp_MSForeachtable 'select ''?'',count(*) from ?'

Delete all tables data:

exec sp_MSForeachtable 'delete from ?'

Truncate all tables data:

exec sp_MSForeachtable 'truncate table ?'

Disable all constraints from all table :

exec sp_MSForeachtable 'alter table ? nocheck constraint all'

Enable all constraints from all table :

exec sp_MSForeachtable 'alter table ? check constraint all'


Note:

Disabling and enabling constraints works only when check constraint or foreign key constraint on top table.

Comments

Post a Comment

Popular posts from this blog

Rank Functions in SQL SERVER

1 . ROW_NUMBER () OVER ( [PARTITION BY CLAUSE] < ORDER BY CLUASE >): Returns the sequantial number of a row within the a partition of result set at 1 for the first row of the each partition. 2. RANK () OVER ( [PARTITION BY CLAUSE] < ORDER BY CLUASE >): Returns rank for rows within the partition of result set. 3. DENSE_RANK () OVER ( [PARTITION BY CLAUSE] < ORDER BY CLUASE >): Returns rank for rows within the partition of result set.With out any gaps in the ranking. 4. NTILE ( INTEGER_EXPRESSION ) OVER ( [PARTITION BY CLAUSE] < ORDER BY CLUASE >): Distributes the rows in an ordered partition into a specified number of groups. Examples: --create Employee table create table Employee (                 EmpId int identity ( 1 , 1 ) primary key ,              ...

Difference between LEN and DATALENGTH

LEN: LEN function returns the number of characters in a variable .it also removes the trailing spaces and then then return the length. Example-1: DECLARE @Name VARCHAR ( 20 )= 'rakesh' SELECT LEN ( @Name ) as [len] Output: Example-2: DECLARE @Name VARCHAR ( 20 )= 'rakesh ' SELECT LEN ( @Name ) as [len] Output: When we observe above variable assigned 'rakesh ' string after that added 3 spaces . Len function removes trailing spaces not leading spaces. DATALENGTH : DATALENG function returns the number of bytes occupy in a variable .it also considered the spaces also. Example-1: DECLARE @Name VARCHAR ( 20 )= 'rakesh' SELECT DATALENGTH ( @Name ) as [DataLength] Output: Example-2: DECLARE @Name VARCHAR ( 20 )= ' rakesh ' SELECT DATALENGTH ( @Name ) as [DataLength] Output: In above example before ' r ' and after ...