>Create Procedure GetTablesAndColumns >( > @dbName nvarchar(128) = NULL, > @tblName nvarchar(128) = Null >) as Begin > > declare @cmd nvarchar(max) > > If @dbName is Null or @dbName='' > Set @dbName=db_name() > Set @dbName = Quotename(@dbName) > > If @tblName is not null and @tblName='' > Set @tblName = NULL > > Set @cmd = N' >Select t.name, c.* from ' + @dbName + '.sys.Tables t > Inner Join ' + @dbName + '.sys.columns c on t.object_id=c.object_id > Where @tblName is Null or t.name=@tblName > Order By t.name, c.column_id > ' > > Exec sp_ExecuteSql @cmd, N'@tblName nvarchar(128)', @tblName >End>