• 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)