Synonyme für Datentypen (Transact-SQL)
Synonyme für Datentypen werden für die ISO-Kompatibilität in SQL Server unterstützt. In der folgenden Tabelle sind die Synonyme und die SQL Server-Systemdatentypen aufgeführt, denen sie zugeordnet werden.
Synonym |
SQL Server-Systemdatentyp |
---|---|
binary varying |
varbinary |
char varying |
varchar |
character |
char |
character |
char(1) |
character(n) |
char(n) |
character varying(n) |
varchar(n) |
Dec |
decimal |
Double precision |
float |
float[(n)] for n = 1-7 |
real |
float[(n)] for n = 8-15 |
float |
integer |
int |
national character(n) |
nchar(n) |
national char(n) |
nchar(n) |
national character varying(n) |
nvarchar(n) |
national char varying(n) |
nvarchar(n) |
national text |
ntext |
timestamp |
rowversion |
Synonyme für Datentypen können in DDL-Anweisungen (Data Definition Language), wie z. B. CREATE TABLE, CREATE PROCEDURE oder DECLARE @variable, statt der entsprechenden Basisdatentypnamen verwendet werden. Die Synonyme sind allerdings nicht sichtbar, nachdem die Objekte erstellt wurden. Wenn ein Objekt erstellt wird, wird ihm der Basisdatentyp zugewiesen, der dem Synonym zugeordnet ist. Es gibt keinen Protokolleintrag, dem entnommen werden kann, dass das Synonym in der Anweisung angegeben wurde, mit der das Objekt erstellt wurde.
Allen Objekten, die von einem Originalobjekt abgeleitet wurden, wie z. B. Spalten eines Resultsets oder Ausdrücke, ist der Basisdatentyp zugewiesen. Alle Metadatenfunktionen, die später für das Originalobjekt oder für eines der abgeleiteten Objekte ausgeführt werden, melden den Basisdatentyp, nicht das Synonym. Dieses Verhalten tritt bei Metadatenoperationen, wie z. B. sp_help, und bei anderen gespeicherten Systemprozeduren auf, den Informationsschemasichten oder den verschiedenen Datenzugriff-API-Metadatenoperationen, die die Datentypen von Tabellen- oder Resultsetspalten zurückgeben.
Sie können z. B. eine Tabelle durch Angabe von national character varying erstellen:
CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, VarCharCol national character varying(10))
VarCharCol wird tatsächlich ein nvarchar(10)-Datentyp zugewiesen, und alle später ausgeführten Metadatenfunktionen melden die Spalte alsnvarchar(10)-Spalte. Die Metadatenfunktionen melden sie nie als national character varying(10)-Spalte.