Index: django/core/management/commands/sqlall.py
===================================================================
--- django/core/management/commands/sqlall.py	(revision 9563)
+++ django/core/management/commands/sqlall.py	(working copy)
@@ -1,7 +1,8 @@
 from django.core.management.base import AppCommand
 
 class Command(AppCommand):
-    help = "Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s)."
+    help = "Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given "+\
+            "app name(s), or all the apps if none specified."
 
     output_transaction = True
 
Index: django/core/management/commands/sqlcustom.py
===================================================================
--- django/core/management/commands/sqlcustom.py	(revision 9563)
+++ django/core/management/commands/sqlcustom.py	(working copy)
@@ -1,7 +1,8 @@
 from django.core.management.base import AppCommand
 
 class Command(AppCommand):
-    help = "Prints the custom table modifying SQL statements for the given app name(s)."
+    help = "Prints the custom table modifying SQL statements for the given app name(s), "+ \
+            "or all the apps if none specified."
 
     output_transaction = True
 
Index: django/core/management/commands/sqlsequencereset.py
===================================================================
--- django/core/management/commands/sqlsequencereset.py	(revision 9563)
+++ django/core/management/commands/sqlsequencereset.py	(working copy)
@@ -1,7 +1,8 @@
 from django.core.management.base import AppCommand
 
 class Command(AppCommand):
-    help = 'Prints the SQL statements for resetting sequences for the given app name(s).'
+    help = "Prints the SQL statements for resetting sequences for the given app name(s), "+ \
+            "or all the apps if none specified."
     output_transaction = True
 
     def handle_app(self, app, **options):
Index: django/core/management/commands/sql.py
===================================================================
--- django/core/management/commands/sql.py	(revision 9563)
+++ django/core/management/commands/sql.py	(working copy)
@@ -1,7 +1,8 @@
 from django.core.management.base import AppCommand
 
 class Command(AppCommand):
-    help = "Prints the CREATE TABLE SQL statements for the given app name(s)."
+    help = "Prints the CREATE TABLE SQL statements for the given app name(s), "+ \
+            "or all the apps if none specified."
 
     output_transaction = True
 
Index: django/core/management/commands/sqlreset.py
===================================================================
--- django/core/management/commands/sqlreset.py	(revision 9563)
+++ django/core/management/commands/sqlreset.py	(working copy)
@@ -1,7 +1,8 @@
 from django.core.management.base import AppCommand
 
 class Command(AppCommand):
-    help = "Prints the DROP TABLE SQL, then the CREATE TABLE SQL, for the given app name(s)."
+    help = "Prints the DROP TABLE SQL, then the CREATE TABLE SQL, for the given app name(s), "+ \
+            "or all the apps if none specified."
 
     output_transaction = True
 
Index: django/core/management/commands/sqlclear.py
===================================================================
--- django/core/management/commands/sqlclear.py	(revision 9563)
+++ django/core/management/commands/sqlclear.py	(working copy)
@@ -1,7 +1,8 @@
 from django.core.management.base import AppCommand
 
 class Command(AppCommand):
-    help = "Prints the DROP TABLE SQL statements for the given app name(s)."
+    help = "Prints the DROP TABLE SQL statements for the given app name(s), "+ \
+            "or all the apps if none specified."
 
     output_transaction = True
 
Index: django/core/management/commands/sqlindexes.py
===================================================================
--- django/core/management/commands/sqlindexes.py	(revision 9563)
+++ django/core/management/commands/sqlindexes.py	(working copy)
@@ -1,7 +1,8 @@
 from django.core.management.base import AppCommand
 
 class Command(AppCommand):
-    help = "Prints the CREATE INDEX SQL statements for the given model module name(s)."
+    help = "Prints the CREATE INDEX SQL statements for the given app name(s), "+ \
+            "or all the apps if none specified."
 
     output_transaction = True
 
Index: django/core/management/commands/reset.py
===================================================================
--- django/core/management/commands/reset.py	(revision 9563)
+++ django/core/management/commands/reset.py	(working copy)
@@ -7,7 +7,8 @@
         make_option('--noinput', action='store_false', dest='interactive', default=True,
             help='Tells Django to NOT prompt the user for input of any kind.'),
     )
-    help = "Executes ``sqlreset`` for the given app(s) in the current database."
+    help = "Executes ``sqlreset`` for the given app(s) in the current database, "+ \
+            "or all the apps if none specified."
     args = '[appname ...]'
 
     output_transaction = True
Index: django/core/management/base.py
===================================================================
--- django/core/management/base.py	(revision 9563)
+++ django/core/management/base.py	(working copy)
@@ -11,6 +11,7 @@
 import django
 from django.core.exceptions import ImproperlyConfigured
 from django.core.management.color import color_style
+from django.conf import settings
 
 try:
     set
@@ -271,12 +272,24 @@
     ``handle_app()``, which will be called once for each application.
     
     """
-    args = '<appname appname ...>'
+    args = '[appname appname ...]'
 
     def handle(self, *app_labels, **options):
         from django.db import models
-        if not app_labels:
-            raise CommandError('Enter at least one appname.')
+        
+        if not app_labels:    # If no app given default to all apps
+            for full_app_name in settings.INSTALLED_APPS:
+                if full_app_name.startswith('django.contrib'):
+                    candidate_label = full_app_name[ len('django.contrib.'): ]
+                else:
+                    candidate_label =  full_app_name
+                try:
+                    models.get_app(candidate_label)
+                    app_labels += (candidate_label,)
+                except ImproperlyConfigured:
+                    # No models in this app, so skip it
+                    pass
+        
         try:
             app_list = [models.get_app(app_label) for app_label in app_labels]
         except (ImproperlyConfigured, ImportError), e:
Index: tests/regressiontests/admin_scripts/tests.py
===================================================================
--- tests/regressiontests/admin_scripts/tests.py	(revision 9563)
+++ tests/regressiontests/admin_scripts/tests.py	(working copy)
@@ -914,7 +914,8 @@
         args = ['sqlall','--help']
         out, err = self.run_manage(args)
         self.assertNoOutput(err)
-        self.assertOutput(out, "Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the given model module name(s).")
+        self.assertOutput(out, "Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL "+\
+                          "statements for the given app name(s), or all the apps if none specified")
 
     def test_base_command(self):
         "User BaseCommands can execute when a label is provided"
@@ -974,10 +975,13 @@
         self.assertOutput(out, "'>, options=[('pythonpath', None), ('settings', None), ('traceback', None), ('verbosity', '1')]")
 
     def test_app_command_no_apps(self):
-        "User AppCommands raise an error when no app name is provided"
+        "User AppCommands defaults to all the apps when no app name is provided"
         args = ['app_command']
         out, err = self.run_manage(args)
-        self.assertOutput(err, 'Error: Enter at least one appname.')
+        self.assertNoOutput(err)
+        self.assertOutput(out, "EXECUTE:AppCommand app=<module 'django.contrib.auth.models'")
+        self.assertOutput(out, "EXECUTE:AppCommand app=<module 'django.contrib.contenttypes.models'")
+        self.assertOutput(out, "EXECUTE:AppCommand app=<module 'admin_scripts.models'")
 
     def test_app_command_multiple_apps(self):
         "User AppCommands raise an error when multiple app names are provided"
