|
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
|
Traduction
Source
|
Inscription des types définis par l'utilisateur dans SQL Server
-
Créez un projet Base de données dans les nœuds de langage Visual Basic ou Visual C#. -
Ajoutez une référence à la base de données SQL Server qui contiendra l'UDT. -
Ajoutez une classe Type défini par l'utilisateur. -
Écrivez le code d'implémentation de l'UDT. -
Dans le menu Générer, sélectionnez Déployer. L'assembly est alors inscrit et le type est créé dans la base de données SQL Server.
Utilisation de CREATE ASSEMBLY
Exemple
USE AdventureWorks; CREATE ASSEMBLY Point FROM '\\ShareName\Projects\Point\bin\Point.dll' WITH PERMISSION_SET = SAFE;
USE AdventureWorks; CREATE ASSEMBLY Point FROM 0xfeac4 … 21ac78
Utilisation de CREATE TYPE
Remarque
|
|---|
|
|
Exemple
CREATE TYPE dbo.Point EXTERNAL NAME Point.[Point];
-
Des tables de la base de données contiennent des colonnes définies à l'aide de l'UDT. -
Des fonctions, procédures stockées ou déclencheurs créés dans la base de données avec la clause WITH SCHEMABINDING utilisent des variables ou des paramètres de l'UDT.
Exemple
DROP TABLE dbo.Points; DROP TYPE dbo.Point; DROP ASSEMBLY Point;
Recherche des dépendances d'un UDT
USE Adventureworks;
SELECT o.name AS major_name, o.type_desc AS major_type_desc
, c.name AS minor_name, c.type_desc AS minor_type_desc
, at.assembly_class
FROM (
SELECT object_id, name, user_type_id, 'SQL_COLUMN' AS type_desc
FROM sys.columns
UNION ALL
SELECT object_id, name, user_type_id, 'SQL_PROCEDURE_PARAMETER'
FROM sys.parameters
) AS c
JOIN sys.objects AS o
ON o.object_id = c.object_id
JOIN sys.assembly_types AS at
ON at.user_type_id = c.user_type_id;
Exemple
ALTER ASSEMBLY Point FROM '\\Projects\Point\bin\Point.dll'
Utilisation de l'instruction ALTER ASSEMBLY pour ajouter le code source
ALTER ASSEMBLY Point ADD FILE FROM '\\Projects\Point\Point.cs' AS PointSource;
SELECT CAST(content AS varchar(8000)) FROM sys.assembly_files WHERE name='PointSource';
UDT Currency et fonction de conversion de devise
Utilisation d'UDT dans plusieurs bases de données
-
appel de procédures stockées définies dans des base de données différentes ; -
interrogation de tables définies dans des bases de données différentes ; -
sélection de données UDT dans une colonne UDT de table de base de données et insertion dans une seconde base de données avec une colonne UDT identique.
Remarque