sp_addtype (Transact-SQL)
S'applique à : SQL Server
Crée un type de données alias.
Important
Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez CREATE TYPE à la place.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_addtype
[ @typename = ] N'typename'
, [ @phystype = ] N'phystype'
[ , [ @nulltype = ] 'nulltype' ]
[ , [ @owner = ] N'owner' ]
[ ; ]
Arguments
[ @typename = ] N’typename'
@typename est sysname, sans valeur par défaut.
Nom du type de données alias. Les noms de types de données d’alias doivent respecter les règles relatives aux identificateurs et doivent être uniques dans chaque base de données. type sysname, sans valeur par défaut.
[ @phystype = ] N’phystype'
Type de données physique ou SQL Server fourni, sur lequel le type de données alias est basé. @phystype est sysname, sans valeur par défaut et peut être l’une des valeurs suivantes :
- bigint, int, smallint et tinyint
- binary, varbinary(n) et image
- bit
- char(n), nchar(n), varchar(n), nvarchar(n), **text et ntext
- datetime et smalldatetime
- decimal(s, P) et numeric(s, P)
- float et real
- money et smallmoney
- sql_variant
- uniqueidentifier
Les guillemets sont requis autour de tous les paramètres qui contiennent des espaces vides incorporés ou des marques de ponctuation. Pour plus d’informations sur les types de données disponibles, consultez Types de données.
n
Entier non négatif qui indique la longueur du type de données choisi.
P
Entier non négatif qui indique le nombre total maximal de chiffres décimaux pouvant être stockés, à la fois à gauche et à droite de la virgule décimale. Pour plus d’informations, consultez décimale et numérique.
s
Entier non négatif qui indique le nombre maximal de chiffres décimaux pouvant être stockés à droite de la virgule décimale, et doit être inférieur ou égal à la précision. Pour plus d’informations, consultez décimale et numérique.
[ @nulltype = ] 'nulltype'
Indique la manière dont le type de données alias gère les valeurs NULL. @nulltype est varchar(8), avec une valeur par défaut NULL
, et doit être placé entre guillemets simples ('NULL'
, 'NOT NULL'
ou 'NONULL'
).
Si @nulltype n’est pas défini explicitement, il est défini sur la valeur nullabilité par défaut actuelle. Utilisez la GETANSINULL
fonction système pour déterminer la valeur nullabilité par défaut actuelle. Cela peut être ajusté à l’aide de l’instruction SET
ou ALTER DATABASE
. La possibilité de valeurs NULL doit être définie explicitement. Si @phystype est bit et que @nulltype n’est pas spécifié, la valeur par défaut est NOT NULL
.
Remarque
Le paramètre @nulltype définit uniquement la valeur nullabilité par défaut pour ce type de données. Si la possibilité d'utiliser des valeurs NULL est explicitement définie quand le type de données alias est utilisé lors de la création de la table, elle est prioritaire sur la possibilité de valeurs NULL actuellement définie. Pour plus d’informations, consultez ALTER TABLE et CREATE TABLE.
[ @owner = ] N’owner'
Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
Valeurs des codes de retour
0
(réussite) or 1
(échec).
Jeu de résultats
Aucune.
Notes
Un nom de type de données alias doit être unique dans la base de données. Cependant, plusieurs types de données alias portant des noms différents peuvent avoir la même définition.
L’exécution sp_addtype
crée un type de données alias qui apparaît dans l’affichage sys.types
catalogue pour une base de données spécifique. Si le type de données alias doit être disponible dans toutes les nouvelles bases de données définies par l’utilisateur, ajoutez-le à model
. Une fois qu’un type de données d’alias est créé, vous pouvez l’utiliser dans CREATE TABLE
ou ALTER TABLE
, ainsi que lier les valeurs par défaut et les règles au type de données alias. Tous les types de données d’alias scalaires créés à l’aide sp_addtype
sont contenus dans le dbo
schéma.
Tous les types de données alias héritent du classement par défaut de la base de données. Les classements des colonnes et variables des types d’alias sont définis dans transact-SQL CREATE TABLE
, ALTER TABLE
et DECLARE @<local_variable>
les instructions. La modification du classement par défaut de la base de données s’applique uniquement aux nouvelles colonnes et variables du type ; elle ne modifie pas le classement des classements existants.
Important
À des fins de compatibilité descendante, le rôle de base de données publique reçoit automatiquement REFERENCES
l’autorisation sur les types de données d’alias créés à l’aide sp_addtype
de . Notez que lorsque des types de données d’alias sont créés à l’aide de l’instruction CREATE TYPE
au lieu de sp_addtype
, aucune telle allocation automatique ne se produit.
Les types de données d’alias ne peuvent pas être définis à l’aide des types de données SQL Server timestamp, table, xml, varchar(max), nvarchar(max)ou varbinary(max).
autorisations
Nécessite l’appartenance au rôle de base de données fixe db_owner ou db_ddladmin .
Exemples
R. Créer un type de données alias qui n’autorise pas les valeurs Null
L’exemple suivant crée un type de données alias nommé ssn
(numéro de sécurité sociale) basé sur le type de données varchar fourni par SQL Server. Le ssn
type de données est utilisé pour les colonnes contenant des numéros de sécurité sociale à 11 chiffres (999-99-9999
). La colonne ne peut pas être NULL
.
varchar(11)
est placé entre guillemets simples, car il contient une ponctuation (parenthèses).
USE master;
GO
EXEC sp_addtype ssn, 'varchar(11)', 'NOT NULL';
GO
B. Créer un type de données d’alias qui autorise les valeurs Null
L'exemple suivant crée un type de données alias (basé sur datetime
) appelé birthday
, qui autorise les valeurs NULL.
USE master;
GO
EXEC sp_addtype birthday, datetime, 'NULL';
C. Créer des types de données d’alias supplémentaires
L’exemple suivant crée deux types de données alias supplémentaires, telephone
et fax
, pour les numéros de téléphone et de télécopie nationaux et internationaux.
USE master;
GO
EXEC sp_addtype telephone, 'varchar(24)', 'NOT NULL';
GO
EXEC sp_addtype fax, 'varchar(24)', 'NULL';
GO
Contenu connexe
- Moteur de base de données procédures stockées (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)
- Procédures stockées système (Transact-SQL)