Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Skapar en aliasdatatyp.
Important
Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Använd CREATE TYPE i stället.
Transact-SQL syntaxkonventioner
Syntax
sys.sp_addtype
[ @typename = ] N'typename'
, [ @phystype = ] N'phystype'
[ , [ @nulltype = ] 'nulltype' ]
[ , [ @owner = ] N'owner' ]
[ ; ]
Arguments
[ @typename = ] Inte typnamn'
@typename är sysname, utan standard.
Namnet på aliasdatatypen. Alias-datatypnamn måste följa reglerna för identifierare och måste vara unika i varje databas. Typen är sysname, utan standard.
[ @phystype = ] N'phystype'
Den fysiska, eller SQL Server-levererade, datatypen som aliasdatatypen baseras på. @phystype är ett systemnamn, utan standard, och kan vara ett av dessa värden:
- bigint, int, smallint och tinyint
- binär, varbinär(n) och bild
- bit
- char(n), nchar(n),varchar(n),nvarchar(n), **text och ntext
- datetime och smalldatetime
- decimal(s, P) och numeriska(s, P)
- flyttal och verklig
- pengar och småpengar
- sql_variant
- uniqueidentifier
Citattecken krävs runt alla parametrar som innehåller inbäddade blanka mellanrum eller skiljetecken. För mer information om tillgängliga datatyper, se Datatyper.
n
Ett icke-negativt heltal som anger längden för den valda datatypen.
P
Ett icke-negativt heltal som anger det maximala totala antalet decimalsiffror som kan lagras, både till vänster och höger om decimalpunkten. För mer information, se decimal och numerisk.
s
Ett icke-negativt heltal som anger det maximala antalet decimalsiffror som kan lagras till höger om decimalpunkten, och det måste vara mindre än eller lika med precisionen. För mer information, se decimal och numerisk.
[ @nulltype = ] 'nulltype'
Indikerar hur aliasdatatypen hanterar nollvärden.
@nulltype är varchar(8), med standardvärdet , NULLoch måste omges av enkla citattecken ('NULL', 'NOT NULL', eller 'NONULL').
Om @nulltype inte är explicit definierat är den inställd på nuvarande standardnullbarhet. Använd GETANSINULL systemfunktionen för att bestämma den aktuella standardnullbarheten. Detta kan justeras genom att använda påståendet SET eller ALTER DATABASE. Nullbarhet bör definieras explicit. Om @phystype är bit, och @nulltype inte specificeras, är NOT NULLstandardvärdet .
Note
Parametern @nulltype definierar endast standardnullbarheten för denna datatyp. Om nullbarhet är explicit definierad när aliasdatatypen används vid tabellskapandet har den företräde framför den definierade nullbarheten. Mer information finns i ALTER TABLE och CREATE TABLE.
[ @owner = ] N'owner'
Identifieras endast i informationssyfte. Stöds ej. Framtida kompatibilitet garanteras inte.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Resultatuppsättning
None.
Remarks
Ett aliasdatatypnamn måste vara unikt i databasen, men aliasdatatyper med olika namn kan ha samma definition.
Att köra sp_addtype skapar en alias-datatyp som visas i sys.types katalogvyn för en specifik databas. Om aliasdatatypen måste finnas tillgänglig i alla nya användardefinierade databaser, lägg till den i model. Efter att en aliasdatatyp har skapats kan du använda den i CREATE TABLE eller ALTER TABLE, och även binda standarddata och regler till aliasdatatypen. Alla skalära alias-datatyper som skapas med hjälp sp_addtype finns i schemat dbo .
Alias-datatyper ärver standardsorteringen av databasen. Sorteringarna av kolumner och variabler av aliastyper definieras i satserna Transact-SQL CREATE TABLE, ALTER TABLE, och DECLARE @<local_variable> . Att ändra databasens standardsortering gäller endast nya kolumner och variabler av typen; Det förändrar inte sorteringen av befintliga.
Important
För bakåtkompatibilitet ges REFERENCES den publika databasrollen automatiskt behörighet för aliasdatatyper som skapas genom att använda sp_addtype. Observera att när aliasdatatyper skapas genom att använda uttalandet CREATE TYPE istället för sp_addtype, sker ingen sådan automatisk tilldelning.
Alias-datatyper kan inte definieras genom att använda SQL Server-tidsstämpeln, tabellen, xml, varchar(max),nvarchar(max) eller varbinary(max)-datatyperna.
Permissions
Kräver medlemskap i db_owner eller db_ddladmin fast databas-roll.
Examples
A. Skapa en alias-datatyp som inte tillåter nullvärden
Följande exempel skapar en alias-datatyp med namnet ssn (personnummer) som baseras på den varchar-datatypen som tillhandahålls av SQL Server. Datatypen ssn används för kolumner med 11-siffriga personnummer (999-99-9999). Kolumnen kan inte vara NULL.
varchar(11) är innesluten med enkla citattecken eftersom den innehåller skiljetecken (parenteser).
USE master;
GO
EXECUTE sp_addtype ssn, 'varchar(11)', 'NOT NULL';
GO
B. Skapa en alias-datatyp som tillåter nollvärden
Följande exempel skapar en alias-datatyp (baserad på datetime) som birthday tillåter nullvärden.
USE master;
GO
EXECUTE sp_addtype birthday, datetime, 'NULL';
C. Skapa ytterligare aliasdatatyper
Följande exempel skapar två ytterligare typer av aliasdata, telephone och fax, för både inhemska och internationella telefon- och faxnummer.
USE master;
GO
EXECUTE sp_addtype telephone, 'varchar(24)', 'NOT NULL';
GO
EXECUTE sp_addtype fax, 'varchar(24)', 'NULL';
GO
Relaterat innehåll
- lagrade procedurer för databasmotorn (Transact-SQL)
- CREATE TYPE (Transact-SQL)
- CREATE DEFAULT (Transact-SQL)
- CREATE RULE (Transact-SQL)
- sp_bindefault (Transact-SQL)
- sp_bindrule (Transact-SQL)
- sp_droptype (Transact-SQL)
- sp_rename (Transact-SQL)
- sp_unbindefault (Transact-SQL)
- sp_unbindrule (Transact-SQL)
- System sparade procedurer (Transact-SQL)