DRVTBL
, aus der Abfrage, die Sie gepostet haben, sieht aus wie ein Alias. Die funktionieren wie temporäre Tabellen in Ihrer T-SQL-Abfrage. SQL Server 2005 verfügt über eine etwas erweiterte Version dieser Funktionalität mit der Bezeichnung Common Table Expressions.
Ein Beispiel -
SELECT *
FROM
(
SELECT
Id,
Name
FROM Employee
WHERE Name LIKE 'A%'
) EmployeeA
WHERE EmployeeA.Name = 'Albert'
Dies wird eine aliased Tabelle erstellen, die alle enthält Employee
s, dessen Namen beginnt mit A
und die äußeren Abfrage, die wiederum wählt die Mitarbeiter mit dem Namen Albert
.
Gleiche geschrieben werden können, unter Verwendung von CTE als -
WITH EmployeeA AS
(
SELECT
Id,
Name
FROM Employee
WHERE Name LIKE 'A%'
)
SELECT * FROM EmployeeA WHERE EmployeeA.Name = 'Albert'
@Frederik Gheysels, danke für die schnelle Antwort. Dieses DRVTBL erscheint nirgendwo sonst im SP. – avnic
Wenn Sie den Alias entfernen, erhalten Sie möglicherweise einen Syntaxfehler, und SQL Server kann die Abfrage nicht ausführen. Sie können den Namen des Alias jedoch in einen geeigneteren Namen ändern. –