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


بررسی وجود یک فیلد خاص در یک جدول یا جداول یک دیتابیس در SQL Server

بررسی وجود یک فیلد خاص در یک جدول یا جداول یک دیتابیس در SQL Server
به عنوان فردی که برنامه نویس SQL Server است، باید بررسی کنید که آیا فیلد خاصی در یک Table و یا در table های دیگر آن دیتابیس وجود دارد یا خیر. خب، چگونه به این مهم برسیم؟ چگونه متوجه شویم که فیلد خاصی در یک Table و یا سایر جداول در دیتابیس SQL Server وجود دارد یا خیر؟ اگر این عمل متوجه یک جدول خاص باشد، دردسر خاصی ندارد ولی اگر در میان انبوهی از جداول که در یک دیتابیس وجود دارد، چگونه فیلد مورد نظرمان را بیابیم؟ در اینجا، چندین روش برای بررسی ستون در یک جدول یا چند جدول در بانک اطلاعات را ذکر کرده ایم. پس لطفا با ما همراه باشید.

سیستم یکپارچۀ سازمانی راهکار



Using INFORMATION_SCHEMA.COLUMNS

ساده ترین راه برای فهیمیدن اینکه ستون خاصی در یک جدول وجود دارد، استفاده از INFORMATION_SCHEMA.COLUMNS می باشد. Template استفاده از INFORMATION_SCHEMA.COLUMNS را در ذیل مشاهده می کنید:

USE {{Database Name}}
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{{Table Name}}'
AND COLUMN_NAME = '{{Column Name}}'

با توجه به Syntax فوق، مثال زیر را ملاحظه کنید:

USE WideWorldImporters
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'CustomerTransactions'
AND COLUMN_NAME = 'CustomerID'

بررسی وجود یک فیلد خاص در یک جدول یا جداول یک دیتابیس در SQL Server

Using SYS.COLUMNS

راه حل دیگری برای بررسی وجود فیلد خاصی در یک جدول استفاده از SYS.COLUMNS می باشد. Syntax استفاده از SYS.COLUMNS بصورت زیر می باشد:

USE {{Database Name}}
SELECT *
FROM SYS.COLUMNS
WHERE OBJECT_ID = OBJECT_ID('{{Table Name}}')
AND NAME = '{{Column Name}}'
Example

با توجه به Syntax فوق، مثال زیر را ملاحظه کنید:

USE WideWorldImporters
SELECT *
FROM SYS.COLUMNS
WHERE OBJECT_ID = OBJECT_ID('Sales.CustomerTransactions')
AND NAME = 'CustomerID'

بررسی وجود یک فیلد خاص در یک جدول یا جداول یک دیتابیس در SQL Server

Using COL_LENGTH

روش دیگر برای یافتن وجود فیل دریک جدول، استفاده از Function سیستمی COL_LENGTH می باشد. در این Function اگر فیلد مورد نظر شما در جدول وجود داشت، طول آن ستون یا فیلد را در خروجی نشان می دهد و در غیر اینصورت مقدار NULL را برمیگرداند.
Syntax استفاده از COL_LENGTH بصورت زیر می باشد:

USE {{Database Name}}
SELECT COL_LENGTH('{{Table Name}}', '{{Column Name}}')

با توجه به Syntax فوق، مثال زیر را ملاحظه کنید:

USE WideWorldImporters
SELECT COL_LENGTH('Sales.CustomerTransactions', 'CustomerID')

بررسی وجود یک فیلد خاص در یک جدول یا جداول یک دیتابیس در SQL Server

Using COLUMNPROPERTY

مورد دیگر، استفاده از COLUMNPROPRTY می باشد که اگر ستون مورد نظر در جدول مورد نظرتان وجود داشته باشد، ID آن فیلد را در تنظیمات جدول برمی گرداند.
Syntax استفاده از COLUMNPROPERTY بصورت زیر می باشد:

USE {{Database Name}}
SELECT COLUMNPROPERTY(OBJECT_ID('{{Table Name}}'), '{{Column Name}}', 'ColumnId')

با توجه به Syntax فوق، مثال زیر را ملاحظه کنید:

USE WideWorldImporters
SELECT COLUMNPROPERTY(OBJECT_ID('Sales.CustomerTransactions'), 'CustomerID', 'ColumnId')

بررسی وجود یک فیلد خاص در یک جدول یا جداول یک دیتابیس در SQL Server
خب، تا الان متدهایی که استفاده کردیم، فقط برای یافتن یک فیلد خاص در جدولی معرفی شده بود. ولی از اینجا به بعد به متدهایی که فیلد مورد نظر را در تمامی جداول دیتابیس جستجو کند، می پردازیم.

Using INFORMATION_SCHEMA.COLUMNS


Syntax:

USE {{Database Name}}
SELECT
TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = '{{Column Name}}'

مثال:
USE WideWorldImporters
SELECT
TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'CustomerID'

بررسی وجود یک فیلد خاص در یک جدول یا جداول یک دیتابیس در SQL Server

Using SYS.COLUMNS


Syntax:

USE {{Database Name}}
SELECT OBJECT_NAME(object_id) AS 'Table Name', name as 'Column Name'
FROM SYS.COLUMNS
WHERE NAME = '{{Column Name}}'

مثال:
USE WideWorldImporters
SELECT OBJECT_NAME(object_id) AS 'Table Name', name as 'Column Name'
FROM SYS.COLUMNS
WHERE NAME = 'CustomerID'

بررسی وجود یک فیلد خاص در یک جدول یا جداول یک دیتابیس در SQL Server
شما حتی می توانید در Stored Procedure ها هم دنبال فیلد خاصی باشید. یعنی لیستی از Stored Procedure ها دارای فیلد خاصی هستند را مشاهده کنید.

Using INFORMATION_SCHEMA.ROUTINES

Syntax:

SELECT
ROUTINE_NAME,
ROUTINE_SCHEMA
FROM
INFORMATION_SCHEMA.ROUTINES WHERE
ROUTINE_TYPE='PROCEDURE' AND
ROUTINE_DEFINITION LIKE '%{{Column Name}}%'

مثال:
SELECT
ROUTINE_NAME,
ROUTINE_SCHEMA
FROM
INFORMATION_SCHEMA.ROUTINES WHERE
ROUTINE_TYPE='PROCEDURE' AND
ROUTINE_DEFINITION LIKE '%Employee%'


Using SYS.PROCEDURES


Syntax:

SELECT
name,
OBJECT_DEFINITION(object_id)
FROM
SYS.PROCEDURES
WHERE
OBJECT_DEFINITION(object_id) LIKE '%{{Column Name}}%'

مثال:
SELECT
name,
OBJECT_DEFINITION(object_id)
FROM
SYS.PROCEDURES
WHERE
OBJECT_DEFINITION(object_id) LIKE '%Employee%'


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

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

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


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