خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


نحوه لیست کردن دیتاتایپ های SQL Server

نحوه لیست کردن دیتاتایپ های SQL Server
در پست قبلی کلیه دیتاتایپ های مورد استفاده در SQL Server 2017 را به شما دوستان نمایش دادیم و حالا در این مطلب کوتاه قصد داریم نحوه انجام اینکار را به شما نشان دهیم. در این پست خواهید دید که چطور با استفاده از View های سیستمی می توانید اینکار را خودتان انجام دهید. اینکار را با استفاده از View ی سیستمی sys.types انجام خواهیم داد و اگر از SQL Server 2000 استفاده می کنید، اینکتار را توسط sys.systypes باید انجام دهید.

نرم افزار سامانه مودیان راهکار



The sys.types View

اگر نسخه های SQL پس از 2000 استفاده می کنید، استفاده از sys.types بهترین گزینه است. سریعترین و ساده ترین شکل استفاده sys.types، Select کردن همه چیز است.

SELECT * FROM sys.types;

در خروجی اسکریپت فوق ستون های بسیاری وجود دارد و اگر فقط نیاز به برخی از این ستون ها دارید، پس به جای *، فقط نام آن ستون ها در دستور Select قید کنید. برای مثال:

SELECT
name,
max_length,
[precision],
scale,
is_user_defined
FROM sys.types;

+------------------+--------------+-------------+---------+-------------------+
| name | max_length | precision | scale | is_user_defined |
|------------------+--------------+-------------+---------+-------------------|
| image | 16 | 0 | 0 | 0 |
| text | 16 | 0 | 0 | 0 |
| uniqueidentifier | 16 | 0 | 0 | 0 |
| date | 3 | 10 | 0 | 0 |
| time | 5 | 16 | 7 | 0 |
| datetime2 | 8 | 27 | 7 | 0 |
| datetimeoffset | 10 | 34 | 7 | 0 |
| tinyint | 1 | 3 | 0 | 0 |
| smallint | 2 | 5 | 0 | 0 |
| int | 4 | 10 | 0 | 0 |
| smalldatetime | 4 | 16 | 0 | 0 |
| real | 4 | 24 | 0 | 0 |
| money | 8 | 19 | 4 | 0 |
| datetime | 8 | 23 | 3 | 0 |
| float | 8 | 53 | 0 | 0 |
| sql_variant | 8016 | 0 | 0 | 0 |
| ntext | 16 | 0 | 0 | 0 |
| bit | 1 | 1 | 0 | 0 |
| decimal | 17 | 38 | 38 | 0 |
| numeric | 17 | 38 | 38 | 0 |
| smallmoney | 4 | 10 | 4 | 0 |
| bigint | 8 | 19 | 0 | 0 |
| hierarchyid | 892 | 0 | 0 | 0 |
| geometry | -1 | 0 | 0 | 0 |
| geography | -1 | 0 | 0 | 0 |
| varbinary | 8000 | 0 | 0 | 0 |
| varchar | 8000 | 0 | 0 | 0 |
| binary | 8000 | 0 | 0 | 0 |
| char | 8000 | 0 | 0 | 0 |
| timestamp | 8 | 0 | 0 | 0 |
| nvarchar | 8000 | 0 | 0 | 0 |
| nchar | 8000 | 0 | 0 | 0 |
| xml | -1 | 0 | 0 | 0 |
| sysname | 256 | 0 | 0 | 0 |
+------------------+--------------+-------------+---------+-------------------+

خروجی فوق انواع دیتاتایپی است که مشاهده می کنید. اگر به یک پایگاه داده دیگر بروید ، می توانید نتایج متفاوتی بدست آورید (این بیشتر به این بستگی دارد که آیا دیتاتایپ های تعریف شده توسط کاربر یا انواع داده های مستعار تعریف شده هم وجود دارد یا خیر).

Alias & User-Defined Data Types

در مثال فوق، ستون is_user_defined را در دستور Select اضافه کردیم و از آنجایی که کلا مقدار آن در تمامی ردیف ها برابر 0 بود، پس هیچ کدام آنها از user-defined یا تعریف شده توسط کاربر نبودند. اجازه دهید یک alias data خودمان ایجاد کنیم و سپس نتیجه را ببینیم.

CREATE TYPE SSN
FROM varchar(11) NOT NULL;

سپس دوباره کوئری Select را اجرا می کنیم:

SELECT
name,
max_length,
[precision],
scale,
is_user_defined
FROM sys.types;

+------------------+--------------+-------------+---------+-------------------+
| name | max_length | precision | scale | is_user_defined |
|------------------+--------------+-------------+---------+-------------------|
| image | 16 | 0 | 0 | 0 |
| text | 16 | 0 | 0 | 0 |
| uniqueidentifier | 16 | 0 | 0 | 0 |
| date | 3 | 10 | 0 | 0 |
| time | 5 | 16 | 7 | 0 |
| datetime2 | 8 | 27 | 7 | 0 |
| datetimeoffset | 10 | 34 | 7 | 0 |
| tinyint | 1 | 3 | 0 | 0 |
| smallint | 2 | 5 | 0 | 0 |
| int | 4 | 10 | 0 | 0 |
| smalldatetime | 4 | 16 | 0 | 0 |
| real | 4 | 24 | 0 | 0 |
| money | 8 | 19 | 4 | 0 |
| datetime | 8 | 23 | 3 | 0 |
| float | 8 | 53 | 0 | 0 |
| sql_variant | 8016 | 0 | 0 | 0 |
| ntext | 16 | 0 | 0 | 0 |
| bit | 1 | 1 | 0 | 0 |
| decimal | 17 | 38 | 38 | 0 |
| numeric | 17 | 38 | 38 | 0 |
| smallmoney | 4 | 10 | 4 | 0 |
| bigint | 8 | 19 | 0 | 0 |
| hierarchyid | 892 | 0 | 0 | 0 |
| geometry | -1 | 0 | 0 | 0 |
| geography | -1 | 0 | 0 | 0 |
| varbinary | 8000 | 0 | 0 | 0 |
| varchar | 8000 | 0 | 0 | 0 |
| binary | 8000 | 0 | 0 | 0 |
| char | 8000 | 0 | 0 | 0 |
| timestamp | 8 | 0 | 0 | 0 |
| nvarchar | 8000 | 0 | 0 | 0 |
| nchar | 8000 | 0 | 0 | 0 |
| xml | -1 | 0 | 0 | 0 |
| sysname | 256 | 0 | 0 | 0 |
| SSN | 11 | 0 | 0 | 1 |
+------------------+--------------+-------------+---------+-------------------+

دیتاتایپ جدید (در پایین) ظاهر می شود که در ستون is_user_defined مقدار 1 دارد.

The sys.systypes View

View سیستمی دیگری با نام sys.systypes هم وجود دارد بیشتر به منظور Backward compatibility یا سازگاری با گذشته است. دلیل این امر آن است که systypes نام جدول سیستمی در SQL Server 2000 بود. مایکروسافت اعلام کرده است که sys.systypes را در نسخ آینده Microsoft SQL Server حذف خواهد کرد و از این رو توصیه می کند که از این View در کارهای جدید خود استفاده نکنید. به عبارت دیگر ، اگر می توانید از sys.types استفاده کنید.

SELECT * FROM sys.systypes;


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز