PDA

View Full Version : واکشی View های موجود در پایگاه داده با استفاده ازپایگاه Master واستفاده در VB



kharabati
جمعه 16 بهمن 1388, 21:33 عصر
سلام.
میخواستم بدونم ازکدوم SP داخل پایگاه Master میشه نام View های داخل یک پایگاه دیگر رو واکشی کرد پارامتری که باید واکشی بشه (View_Name@ ) هست .کسی چنین SP رو میتونه معرفی کنه.
---------------------
به عنوان مثال از SP به نام sp_sproc_columns داخل پایگاه Master برای نمایش دادن و واکشی نام SP های موجود در پایگا های دیگه استفاده می کنم.
در یه قسمت از کد این SP که به شکل زیر هست:
شما نام PROCEDURE_NAME رو میبینید من حالا میخوام یه SPپیداکنم که VIEW_NAME رو
پیدا کنه.




--
-- FAST!
--
select
PROCEDURE_QUALIFIER = s_scov.PROCEDURE_QUALIFIER,
PROCEDURE_OWNER = s_scov.PROCEDURE_OWNER,
PROCEDURE_NAME =convert(nvarchar(134),s_scov.PROCEDURE_NAME +';'+ ltrim(str(s_scov.procedure_number,5))),
COLUMN_NAME = s_scov.COLUMN_NAME,
COLUMN_TYPE = s_scov.COLUMN_TYPE,
DATA_TYPE = s_scov.DATA_TYPE_28,
TYPE_NAME = s_scov.TYPE_NAME_28,
"PRECISION" = s_scov.PRECISION_28,
"LENGTH" = s_scov.LENGTH_28,
SCALE = s_scov.SCALE,
RADIX = s_scov.RADIX,
NULLABLE = s_scov.NULLABLE,
REMARKS = s_scov.REMARKS,
COLUMN_DEF = s_scov.COLUMN_DEF,
SQL_DATA_TYPE = s_scov.SQL_DATA_TYPE_28,
SQL_DATETIME_SUB = s_scov.SQL_DATETIME_SUB,
CHAR_OCTET_LENGTH = s_scov.CHAR_OCTET_LENGTH_28,
ORDINAL_POSITION = s_scov.ORDINAL_POSITION,
IS_NULLABLE = s_scov.IS_NULLABLE,
SS_DATA_TYPE = s_scov.SS_DATA_TYPE
from
sys.spt_sproc_columns_odbc_view s_scov
where
s_scov.object_id = @procedure_id and
s_scov.odbcver = @ODBCVer and
(@column_name is null or s_scov.COLUMN_NAME = @column_name) and
(s_scov.procedure_number between @group_num_lower and @group_num_upper)

UNION ALL

select -- procedure return value & table valued functions
PROCEDURE_QUALIFIER = s_scrvov.PROCEDURE_QUALIFIER,
PROCEDURE_OWNER = s_scrvov.PROCEDURE_OWNER,
PROCEDURE_NAME = convert(nvarchar(134),
s_scrvov.PROCEDURE_NAME +';'+ ltrim(str(s_scrvov.procedure_number,5))),
COLUMN_NAME = s_scrvov.COLUMN_NAME,
COLUMN_TYPE = s_scrvov.COLUMN_TYPE,
DATA_TYPE = s_scrvov.DATA_TYPE, -- SNAC == MDAC, return value can only be int or table
TYPE_NAME = s_scrvov.TYPE_NAME, -- SNAC == MDAC, return value can only be int or table
"PRECISION" = s_scrvov.PRECISION,
"LENGTH" = s_scrvov.LENGTH,
SCALE = s_scrvov.SCALE,
RADIX = s_scrvov.RADIX,
NULLABLE = s_scrvov.NULLABLE,
REMARKS = s_scrvov.REMARKS,
COLUMN_DEF = s_scrvov.COLUMN_DEF,
SQL_DATA_TYPE = s_scrvov.SQL_DATA_TYPE,
SQL_DATETIME_SUB = s_scrvov.SQL_DATETIME_SUB,
CHAR_OCTET_LENGTH = s_scrvov.CHAR_OCTET_LENGTH,
ORDINAL_POSITION = s_scrvov.ORDINAL_POSITION,
IS_NULLABLE = s_scrvov.IS_NULLABLE,
SS_DATA_TYPE = s_scrvov.SS_DATA_TYPE
from

..........................................

..................تا پایان SP

armin8651
جمعه 16 بهمن 1388, 22:30 عصر
sp_tablesتو پایگاه داده Master کلآ اسامی system Table ها و Table ها و View های پایگاه داده رو میده
میتونی همه اینا رو تو Dataset بریزی و بعد Viewها رو فیلتر کنی و اسامی View ها رو بدست بیاری.

kharabati
جمعه 16 بهمن 1388, 23:39 عصر
سلام.
یه مثال عملی ندارین بزرارین .من یه مثال دارم اما فقط مشخصات Table ها و SP ها رو نشون میده براتون قرار میدم اگه تونستین قسمت View رو براش درست کنید یا راهنمایی کنید چطور باید بسازم. :متفکر::متفکر: