Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Hinzufügen von tempdb-Elementen beim Start in SQL Server

Ähm, wenn Sie die Standardeinstellungen verwendet haben, um den ASP.Net-Sitzungsstatus in tempdb zu aktivieren, sollte das System eine gespeicherte Prozedur (ASPState_Startup ) wie folgt in der Master-Datenbank. Diese gespeicherte Prozedur ist so konfiguriert, dass sie beim Start von SQL Server automatisch ausgeführt wird:

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    

Daher sollten die temporären Tabellen sowieso neu erstellt werden, es sei denn, seit der Installation wurde etwas geändert.

Wenn zusätzliche Berechtigungen erforderlich sind, würde ich versuchen, die vorhandenen CreateTempTables zu erweitern Prozedur in ASPState .

Wenn dies nicht richtig funktioniert, können Sie versuchen, aspnet_regsql zu verwenden Befehl (zu finden unter %Windir%\Microsoft.Net\Framework\<framework version - zum Entfernen und erneuten Hinzufügen der Session-State-Unterstützung zum Server. Sie möchten -ssremove verwenden dann -ssadd , aber ich würde vorschlagen, /? zu übergeben zuerst, um alle anwendbaren Optionen zu sehen.