ورود

View Full Version : سوال: اطلاعاتی از دیتابیس با استفاده از Master



Javad_raouf
شنبه 16 مرداد 1389, 14:42 عصر
سلام من می خوام اطلاعاتی از یک دیتا بیس از قبیل:
نام جداول
نام فیلد ها
نوع فیلد ها و طول هر فیلد
دیاگرام ها و اتصالات بین جداول
به دست بیارم
می دونم که با استفاده از دیتابیس Master همه اینا دم دسته ولی نمی دونم دقیقا باید چوکا کنم:متفکر:
با تشکر

ahmad_eagle2002
شنبه 16 مرداد 1389, 15:03 عصر
ببين اين كوئري ها بدردت مي خوره
SELECT * FROM sys.databases
SELECT * FROM sys.tables
SELECT * FROM sys.columns ,sys.tables WHERE sys.columns.object_id =sys.tables.object_id

محمد سلیم آبادی
شنبه 16 مرداد 1389, 15:05 عصر
برای لیست جداول، ستونها و ... می تونید از ویوهای سیستمی چون information_schema.columns کوئری بگیرین.

محمد سلیم آبادی
شنبه 16 مرداد 1389, 15:06 عصر
ببين اين كوئري ها بدردت مي خوره
SELECT * FROM sys.databases
SELECT * FROM sys.tables
SELECT * FROM sys.columns ,sys.tables WHERE sys.columns.object_id =sys.tables.object_id

اگر از نسخه های جدید در حال استفاده هستین از ویوهای سری information_schema کوئری بگیرین.

ahmad_eagle2002
شنبه 16 مرداد 1389, 15:12 عصر
متشكرم
بله خيلي بهتر و راحت تر جواب ميده

Javad_raouf
پنج شنبه 15 مهر 1389, 15:35 عصر
از همه دوستان ممنون
آیا راهی هست که بشه به کد یک SP دسترسی پیدا کرد
منظورم اینه که نام SP رو داریم می خوایم ببینیم کدش چیه
با تشکر

mehdi.mousavi
پنج شنبه 15 مهر 1389, 15:57 عصر
از همه دوستان ممنون
آیا راهی هست که بشه به کد یک SP دسترسی پیدا کرد
منظورم اینه که نام SP رو داریم می خوایم ببینیم کدش چیه
با تشکر

سلام.
میتونید به این شکل عمل کنید:

exec sp_helptext 'myStoredProcName'

موفق باشید.

Javad_raouf
پنج شنبه 15 مهر 1389, 17:27 عصر
یک سوال دیگه
وقتی در Enterprise Manager روی یک table راست کلیک می کنی و از منوی All Task گزینه Generate Sql Script رو انتخاب می کنی
یک Script بهت می ده که اونو توی هر دیتابیسی اجرا کنی یک جدول ساخته میشه
یک چیزی مثل این:

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tbltest1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tbltest1]
GO

CREATE TABLE [dbo].[tbltest1] (
[cod] [numeric](18, 0) IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,
[nam] [nvarchar] (50) COLLATE Arabic_CI_AS NOT NULL ,
[val] [nvarchar] (50) COLLATE Arabic_CI_AS NOT NULL ,
[val2] [nvarchar] (50) COLLATE Arabic_CI_AS NOT NULL
) ON [PRIMARY]
GO


می خواستم ببینم آیا Enterprise Manager این کد رو دستی درست می کنه و یا یک چیزی مثل sp_helptext هست که این کار رو انجام بده
پیشاپیش ممنون

mehdi.mousavi
پنج شنبه 15 مهر 1389, 17:42 عصر
یک سوال دیگه می خواستم ببینم آیا Enterprise Manager این کد رو دستی درست می کنه و یا یک چیزی مثل sp_helptext هست که این کار رو انجام بده پیشاپیش ممنون

سلام.
خیر، Stored Procedure ای برای ایجاد این Script ها وجود نداره. این Script ها توسط MMC Snap-in ایجاد میشن، اگر چه ممکنه SQL های 3rd party ای برای ایجاد چنین Script هایی توسط افراد نوشته شده باشه (لطفا در گوگل جستجو کنید).

موفق باشید.

Javad_raouf
پنج شنبه 15 مهر 1389, 17:50 عصر
(لطفا در گوگل جستجو کنید).
میشه بگید دقیقا چی رو سرچ کنم تا سر در گم نشم؟ ممنون
-------------------
ضمنا میشه یک تاپیک یا منبع فارسی که درباره نمایش ، ایجاد و حذف جدول ، فیلد و .... با استفاده از کد نویسی مطلب داشته باشه بهم معرفی کنید
من سرچ کردم چیزی پیدا نکردم
با تشکر

mehdi.mousavi
پنج شنبه 15 مهر 1389, 18:13 عصر
میشه بگید دقیقا چی رو سرچ کنم تا سر در گم نشم؟ ممنون
-------------------
ضمنا میشه یک تاپیک یا منبع فارسی که درباره نمایش ، ایجاد و حذف جدول ، فیلد و .... با استفاده از کد نویسی مطلب داشته باشه بهم معرفی کنید
من سرچ کردم چیزی پیدا نکردم
با تشکر

سلام.
من متاسفانه منبع فارسی سراغ ندارم. توی گوگل دنبال SQL Server CRUD Samples بگردید، احتمالا Sample هایی خواهید یافت. اما در مورد سوال اول، می تونید به این آدرس (http://sqlblogcasts.com/blogs/madhivanan/archive/2007/08/27/generate-sql-script.aspx) رجوع کنید (یا دنبال sql generate create table script در گوگل بگردید).

موفق باشید.

Javad_raouf
پنج شنبه 15 مهر 1389, 19:52 عصر
بازم یک سوال دیگه
برای ساخت فیلد جدید باید نوع فیلد رو مشخص کنیم
مثلا:
[int]
ولی موقعی که از Syscolumns اطلاعات فیلد ها رو می گیریم به جای int از یک عدد استفاده شده
مثلا برای Int کدش هست 56
آیا جدولی هست که از طریقش بشه فهمید کد 56 مربوط به نوع داده Int هست؟
با تشکر

Javad_raouf
جمعه 16 مهر 1389, 11:36 صبح
بازم یک سوال دیگه
برای ساخت فیلد جدید باید نوع فیلد رو مشخص کنیم
مثلا:
[int]
ولی موقعی که از Syscolumns اطلاعات فیلد ها رو می گیریم به جای int از یک عدد استفاده شده
مثلا برای Int کدش هست 56
آیا جدولی هست که از طریقش بشه فهمید کد 56 مربوط به نوع داده Int هست؟
با تشکر
سلام
یک جدول پیدا کردم که این کار رو می کنه:

select * from systypes
ممنون