Thanks for all of the inputs so far.
FYI, since this is a somewhat ambiguous question...
• Almost all of the tables have INT/VARCHAR datatypes. Definitely no BLOB, Text, NText, image, etc. datatypes.
• Any cases where we might have to deal with "OBJECT_ID", we convert somehow to "OBJECT_NAME" to avoid any issues.
i.e., IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[MyTable]') AND .....)
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE NAME = 'MyTable' AND ...)
IF NOT EXISTS (SELECT * FROM SYS.sql_modules WHERE definition LIKE '%(18)%change table joins. ME 7/9/15.%' AND object_id = OBJECT_ID('usp_MyStoredProcedure'))
• Permissions are at the database level, not at the table level for our applications.
I do agree the overall impact on the log file(s) should be minimal, but something just rubs me the wrong way when a table is dropped and re-created automatically when there is nothing wrong with it, not because it deviates from the "standard". But I also imagine a lot of the users do *not* do any backups on their SQL Server [Express] instances and we currently do not provide that capability.
Argue for your limitations, and sure enough they're yours (Richard Bach, Illusions)