SP_MSFOREACHTABLE SYSTEM STORED PROCEDURE V2K You will not find a reference to it in the 2k books online, but it has been in SQL Server since v6.5: a little-known system stored procedure that will issue commands based upon all the tables in a specific database. If you wanted to execute a table row count against every table in your database, you may first be inclined to write a cursor that queries the informationschema views or system tables to first get a list of tables in the database. Then process each row with the required count(*) command. The sp_MSforeachtable stored procedure can do all of this for you behind the scenes. All you do is pass in the commands you want executed and sp_MSforeachtable does the rest. Know that the question mark (?) is the table place holder for this procedure. Anywhere you would like to refer to the table, use the question mark identifier. You can pass in as many as three separate commands by identifying each command as @command1, @command2, and @command3. Consider the following scenario: sp_MSforeachtable @command1 = "PRINT REPLICATE('*',DATALENGTH('?'))", @command2 = "SELECT '?' = COUNT(*) FROM ?" The above statement will output similar to the following: ************** [dbo].[Table1] -------------- 309 *************** [dbo].[Table29] --------------- 545 ********************* [dbo].[HistoryTable1] --------------------- 968 You can use sp_MSforeachtable most anywhere. Note that this procedure resides in the master database. -------------------------------------------