sp_addtype (T-SQL)

Berlaku untuk:SQL Server

Membuat jenis data alias.

Penting

Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Gunakan CREATE TYPE sebagai gantinya.

Konvensi sintaks transact-SQL

Sintaks

sp_addtype
    [ @typename = ] N'typename'
    , [ @phystype = ] N'phystype'
    [ , [ @nulltype = ] 'nulltype' ]
    [ , [ @owner = ] N'owner' ]
[ ; ]

Argumen

[ @typename = ] N'typename'

@typename adalah sysname, tanpa default.

Nama jenis data alias. Nama jenis data alias harus mengikuti aturan untuk pengidentifikasi dan harus unik di setiap database. jenisnya adalah sysname, tanpa default.

[ @phystype = ] N'phystype'

Fisik, atau SQL Server disediakan, jenis data tempat jenis data alias didasarkan. @phystype adalah sysname, tanpa default, dan dapat menjadi salah satu nilai ini:

  • bigint, int, smallint, dan tinyint
  • biner, varbinary(n), dan gambar
  • bit
  • char(n), nchar(n), varchar(n), nvarchar(n), **text, dan ntext
  • datetime dan smalldatetime
  • desimal, P) dan numerik, P
  • float dan real
  • uang dan smallmoney
  • aql_variant
  • pengidentifikasi unik

Tanda kutip diperlukan di sekitar semua parameter yang berisi spasi kosong atau tanda baca yang disematkan. Untuk informasi selengkapnya tentang jenis data yang tersedia, lihat Jenis Data (Transact-SQL).

  • n

    Bilangan bulat non-negatif yang menunjukkan panjang untuk jenis data yang dipilih.

  • P

    Bilangan bulat non-negatif yang menunjukkan jumlah total maksimum digit desimal yang dapat disimpan, baik di sebelah kiri maupun di sebelah kanan titik desimal. Untuk informasi selengkapnya, lihat desimal dan numerik (Transact-SQL).

  • s

    Bilangan bulat non-negatif yang menunjukkan jumlah maksimum digit desimal yang dapat disimpan di sebelah kanan titik desimal, dan harus kurang dari atau sama dengan presisi. Untuk informasi selengkapnya, lihat desimal dan numerik (Transact-SQL).

[ @nulltype = ] 'nulltype'

Menunjukkan cara tipe data alias menangani nilai null. @nulltype adalah varchar(8), dengan default NULL, dan harus diapit dalam tanda kutip tunggal ('NULL', 'NOT NULL', atau 'NONULL').

Jika @nulltype tidak ditentukan secara eksplisit, @nulltype diatur ke nullability default saat ini. GETANSINULL Gunakan fungsi sistem untuk menentukan nullability default saat ini. Ini dapat disesuaikan dengan menggunakan SET pernyataan atau ALTER DATABASE. Nullability harus didefinisikan secara eksplisit. Jika @phystypebit, dan @nulltype tidak ditentukan, defaultnya adalah NOT NULL.

Catatan

Parameter @nulltype hanya menentukan nullability default untuk jenis data ini. Jika nullability secara eksplisit didefinisikan ketika jenis data alias digunakan selama pembuatan tabel, diperlukan prioritas daripada nullability yang ditentukan. Untuk informasi selengkapnya, lihat ALTER TABLE (Transact-SQL) dan CREATE TABLE (Transact-SQL).

[ @owner = ] N'owner'

Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Tataan hasil

Tidak ada.

Keterangan

Nama jenis data alias harus unik dalam database, tetapi jenis data alias dengan nama yang berbeda dapat memiliki definisi yang sama.

sp_addtype Menjalankan membuat jenis data alias yang muncul dalam sys.types tampilan katalog untuk database tertentu. Jika jenis data alias harus tersedia di semua database baru yang ditentukan pengguna, tambahkan ke model. Setelah jenis data alias dibuat, Anda dapat menggunakannya di CREATE TABLE atau ALTER TABLE, dan juga mengikat default dan aturan ke jenis data alias. Semua jenis data alias skalar yang dibuat dengan menggunakan sp_addtype terkandung dalam dbo skema.

Jenis data alias mewarisi kolase default database. Kolase kolom dan variabel jenis alias ditentukan dalam pernyataan Transact-SQL CREATE TABLE, ALTER TABLE, dan DECLARE @<local_variable> . Mengubah kolatasi default database hanya berlaku untuk kolom dan variabel baru dari jenis; itu tidak mengubah kolacek yang ada.

Penting

Untuk tujuan kompatibilitas mundur, peran database publik secara otomatis diberikan REFERENCES izin pada jenis data alias yang dibuat dengan menggunakan sp_addtype. Perhatikan ketika jenis data alias dibuat dengan menggunakan CREATE TYPE pernyataan alih-alih , tidak ada pemberian sp_addtypeotomatis seperti itu yang terjadi.

Jenis data alias tidak dapat ditentukan dengan menggunakan jenis data tanda waktu, tabel, xml, varchar(maks) SQL Server, nvarchar(max), atau varbinary(max).

Izin

Memerlukan keanggotaan dalam peran database tetap db_owner atau db_ddladmin .

Contoh

J. Membuat tipe data alias yang tidak memungkinkan nilai null

Contoh berikut membuat jenis data alias bernama ssn (nomor jaminan sosial) yang didasarkan pada jenis data varchar yang disediakan SQL Server. Jenis ssn data digunakan untuk kolom yang menyimpan 11 digit nomor jaminan sosial (999-99-9999). Kolom tidak boleh NULL.

varchar(11) diapit dalam tanda kutip tunggal karena berisi tanda baca (tanda kurung).

USE master;
GO
EXEC sp_addtype ssn, 'varchar(11)', 'NOT NULL';
GO

B. Membuat jenis data alias yang memungkinkan nilai null

Contoh berikut membuat jenis data alias (berdasarkan datetime) bernama birthday yang memungkinkan nilai null.

USE master;
GO
EXEC sp_addtype birthday, datetime, 'NULL';

C. Membuat jenis data alias tambahan

Contoh berikut membuat dua jenis data alias lagi, telephone dan fax, untuk nomor telepon dan faks domestik dan internasional.

USE master;
GO
EXEC sp_addtype telephone, 'varchar(24)', 'NOT NULL';
GO
EXEC sp_addtype fax, 'varchar(24)', 'NULL';
GO