Unterstützt LocalDB temporäre Tabellen?

Antworten:

10

Ich kann nicht für alle Versionen antworten, aber für SQL Server 2012 bis SQL Server 2017 bin ich sicher, dass sie unterstützt werden

LocalDB verfügt über dieselben Programmierfunktionen wie SQL Server Express.

SQL Server Express LocalDB, eine kompakte Version von Express, die alle Programmierfunktionen bietet, jedoch im Benutzermodus ausgeführt wird und eine schnelle Installation ohne Konfiguration sowie eine kurze Liste der Voraussetzungen bietet.

Quelle

Aufbauend auf dem vorherigen Punkt für die SQL Server Express 2012 T-SQL-Syntax

Express unterstützt dieselben T-SQL-Sprachelemente, die Sie in jeder Edition von SQL Server finden. Sie können nicht nur Sprachabfragen zur Datenmanipulation für die Datenbank ausgeben, sondern auch Sprachanweisungen für die Datendefinition ausführen, um Objekte wie Ansichten, Trigger, Cursor und gespeicherte Prozeduren zu erstellen

Quelle

Testen (SQL Server 2017)

Geben Sie hier die Bildbeschreibung ein

USE testdb
GO
CREATE TABLE #temp (id int , value nvarchar(255));

INSERT INTO #temp( id ,value)
SELECT 5, 'bla';

SELECT * FROM #temp;

Ergebnis

id  value
5   bla

Die temporäre Tabelle funktioniert auch, wenn der Kompatibilitätsmodus der Datenbank auf 100 (2008) geändert wird.

Randi Vertongen
quelle
6

Ja, alle Formen temporärer Objekte (lokale temporäre Tabellen, globale temporäre Tabellen, Tabellenvariablen, lokale temporäre gespeicherte Prozeduren und globale temporäre gespeicherte Prozeduren) sind in allen Versionen von SQL Server Express LocalDB verfügbar.

Ich habe den folgenden einfachen Test für jeden dieser 5 Objekttypen in den Versionen 2012, 2014, 2016 und 2017 durchgeführt und keine Fehler erhalten.

CREATE TABLE #LocalTempTable (Col1 INT);
SELECT * FROM #LocalTempTable;


CREATE TABLE ##GlobalTempTable (Col1 INT);
SELECT * FROM ##GlobalTempTable;


DECLARE @TableVariable TABLE (Col1 INT);
SELECT * FROM @TableVariable;


GO
CREATE PROCEDURE #LocalTempProc
AS
SELECT 1;
GO
EXEC #LocalTempProc;

GO
CREATE PROCEDURE ##GlobalTempProc
AS
SELECT 2;
GO
EXEC ##GlobalTempProc;

Außerdem würde SQL Server wahrscheinlich nicht einmal gestartet, wenn diese nicht verfügbar wären, da sie in gespeicherten Systemprozeduren, Funktionen msdbusw. verwendet werden.

Solomon Rutzky
quelle
4

Ja, Localdb unterstützt temporäre Tabellen.

USE [test];
GO

CREATE TABLE #mytemp
(
    id int,
    foo int,
    bar int
);
GO

SELECT 
    *
FROM   
    tempdb.INFORMATION_SCHEMA.TABLES;
GO

DROP TABLE #mytemp;
GO

Kehrt zurück:

TABLE_CATALOG    TABLE_SCHEMA     TABLE_NAME                            TABLE_TYPE
---------------- ---------------- ------------------------------------  ----------
tempdb           dbo              #mytemp________________00000000000A   BASE TABLE

Und abfragen sys.databases:

SELECT 
    name,
    database_id
FROM
    sys.databases;

Gibt dieselbe Systemdatenbankstruktur zurück.

name      database_id
--------- -----------
master    1
tempdb    2
model     3
msdb      4
test      5
McNets
quelle
2

Stimmen Sie mit @RandiVertongen überein.

Die LocalDB- Installation kopiert einen minimalen Satz von Dateien, die zum Starten des SQL Server-Datenbankmoduls erforderlich sind. Sobald LocalDB installiert ist, können Sie eine Verbindung mit einer speziellen Verbindungszeichenfolge herstellen. Beim Herstellen einer Verbindung wird die erforderliche SQL Server-Infrastruktur automatisch erstellt und gestartet, sodass die Anwendung die Datenbank ohne komplexe Konfigurationsaufgaben verwenden kann. Mit den Entwicklertools können Entwickler ein SQL Server-Datenbankmodul bereitstellen, mit dem sie Transact-SQL-Code schreiben und testen können, ohne eine vollständige Serverinstanz von SQL Server verwalten zu müssen.

Weitere Informationen über LocalDB verweisen offiziellen Link Quelle

Beachten Sie, dass es Einschränkungen gibt:

1) LocalDB kann kein Merge-Replikations-Abonnent sein.

2) LocalDB unterstützt FILESTREAM nicht.

3) LocalDB erlaubt nur lokale Warteschlangen für Service Broker.

4) Eine Instanz von LocalDB, die den integrierten Konten wie NT AUTHORITY \ SYSTEM gehört, kann aufgrund der Umleitung des Windows-Dateisystems Probleme mit der Verwaltbarkeit haben. Verwenden Sie stattdessen ein normales Windows-Konto als Eigentümer.

Ich hoffe das hilft!

MarmiK
quelle