Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Ajout d'éléments tempdb au démarrage dans SQL Server

Um, si vous avez utilisé les paramètres standard pour activer l'état de session ASP.Net dans tempdb, le système devrait avoir généré un proc stocké (ASPState_Startup ) comme suit dans la base de données master. Cette procédure stockée est configurée pour s'exécuter automatiquement au démarrage de SQL Server :

USE master
GO

DECLARE @sstype nvarchar(128)
SET @sstype = N'sstype_temp'

IF UPPER(@sstype) = 'SSTYPE_TEMP' BEGIN
    DECLARE @cmd nchar(4000)

    SET @cmd = N'
        /* Create the startup procedure */
        CREATE PROCEDURE dbo.ASPState_Startup 
        AS
            EXECUTE ASPState.dbo.CreateTempTables

            RETURN 0'
    EXEC(@cmd)
    EXECUTE sp_procoption @ProcName='dbo.ASPState_Startup', @OptionName='startup', @OptionValue='true'
END    

Ainsi, les tables temporaires doivent être recréées de toute façon, à moins que quelque chose n'ait été modifié depuis l'installation.

Si des autorisations supplémentaires sont requises, je chercherais à étendre les CreateTempTables existants procédure dans ASPState .

Si cela ne fonctionne pas correctement, vous pouvez essayer d'utiliser le aspnet_regsql commande (trouvée sous %Windir%\Microsoft.Net\Framework\<framework version - pour supprimer puis rajouter la prise en charge de l'état de session au serveur. Vous voudriez utiliser -ssremove puis -ssadd , mais je suggérerais de passer /? premier à voir toutes les options applicables.