الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طريقة الحصول على Script of table

مغلق
بدأه activeman في 29 يوليو 2007 · 6 رد · 778 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أود معرفة طريقة الحصول على هيكلية جدول معين موجود على SQL Server باستخدام أكواد الدوت نت ومكتباتها

وبدون استعمال SMO ..

وايضا ماهي الصيغة الأساسية الرسمية :: التي يمكن الاعتماد عليها مثلا:

كيف يتكون الجدول

Create table Table1
(
   ID [int] NULL , xx,xx,, 
)

عشان نعرف مين اللي قبل NULL أو int Datatype وهكذا لو كان primary or Forign key

#2

اود يا جماعة معرفة كل مكونات الجدول الضرورية كما اسلفت مثل النوع الحجم والفراغ وهل هو برايمري وهل هو يونيك وكل ما يلزم؟

#3

السلام عليكم ورحمة الله وبركاته :

يمكن ذلك باستخدام شوية T-SQL Statement على معلومات كثيرة عن أعمدة الجدول الذي تنشئه في قاعدة بياناتك :

تنشئ هذا الإجراء في قاعدة بياناتك لجلب معلومات عن أعمدة جدول ما طبعاً بدون القيود .. القيود لها استعلام سهل وبسيط :

-- This procedure was created and tested by imadouzoun

Create Proc [dbo].[TableColumns]

  @DataBase sysname ='' , 
  @nvcObject_Name  sysname ='%' , 
  @nvcObject_Type nvarchar(3) = 'U'

AS

 Set Concat_Null_Yields_Null Off

	If Not object_id('tempdb..##TableColumns') Is Null
		Exec('Drop Table ##TableColumns')


	CREATE TABLE ##TableColumns(

		[colId] BigInt  NOT NULL,
		[colOrder] BigInt  NOT NULL,
		[colName] [sysname] ,

		[type]  [Sysname],
		[colDefault] SQL_Variant ,

		[colLength] BigInt NOT NULL,

		[colPrec]  BigInt,
		[colScale]  BigInt, 

		[isComputed]  BigInt,
		[isNullable]  BigInt
	) 


	If(@DataBase <> '')
	  Set @DataBase = @DataBase + '..'
	Declare @query nvarchar(4000)

	Set @query = ' 

	Insert ##TableColumns(

		[colId] , [colOrder] , [colName] ,

		[type] , [colLength] , [colPrec] , [colScale] , 

		[colDefault] ,	[isComputed] ,	[isNullable] 
	)
	select ' +

		@DataBase 	+ 'syscolumns.id ,'			+
		@DataBase 	+ 'syscolumns.colOrder ,'	+
		@DataBase 	+ 'syscolumns.name ,'		+
		@DataBase 	+ 'sysTypes.name ,'			+

		@DataBase 	+ 'syscolumns.length ,'		+
		@DataBase 	+ 'syscolumns.prec ,'		+
		@DataBase 	+ 'syscolumns.scale ,'		+ 

		@DataBase 	+ 'syscolumns.cDefault ,'	+

		@DataBase 	+ 'syscolumns.isComputed ,'	+ 
		@DataBase 	+ 'syscolumns.isNullable '	+ 

	'From '			+	

		@DataBase 	+ 'syscolumns '			+
			'INNER JOIN ' + @DataBase 		+ 'sysobjects ON ' + 
			@DataBase 	+ 'sysobjects.id  = '   +  @DataBase   + 'syscolumns.id ' 	 +
			'INNER JOIN ' + @DataBase 		+ 'sysTypes  ON '  +
			@DataBase 	+ 'sysTypes.XType = ' 	+  @DataBase   + 'syscolumns.XType ' +
	'Where ' 	+
		@DataBase 	+ 'sysobjects.Xtype = '''	+ @nvcObject_Type + ''' And ' +  
		@DataBase	+ 'sysobjects.name like ''' + @nvcObject_Name + ''' And ' +
		@DataBase 	+ 'sysTypes.name <> ''sysname'' Order By ' +
		@DataBase 	+ 'syscolumns.id'


	print @query 
	Exec( @query )
GO

الاختبار :

Exec TableColumns
			--@DataBase = 'MyDatabase',
			@nvcObject_Name ='myTB'

		Select * From ##TableColumns

أما القيود على الجدول :

Select * From sys.SysObjects Where  parent_obj = object_id('MyTB')

بالتوفيق ..

تم تعديل هذه المشاركة بواسطة imadouzoun في 30 يوليو 2007 في 07:15

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#4

شكرا جزيلا اخ عماد على الاحتراف الله يبارك فيك وجزاك الله كل خير فالكود جميل، لكن عند تطبيق الاختبار ظهر لي حقول فارغة..

سؤال هل العرض هو الترتيب الصحيح من ناحية تكوين الجدول.

#5

سؤال اخر الله يحفظك ، كيف ممكن اصل لعلاقات النظام الرئيسية بال SQL

#6
اقتباس
لكن عند تطبيق الاختبار ظهر لي حقول فارغة..

كيف يعني حقول فارغة ..؟؟ ممكن تبعتلي صورة عن نتائج تنفيذ الإجراء لأني مستغرب مما تقول !

اقتباس
سؤال هل العرض هو الترتيب الصحيح من ناحية تكوين الجدول.

العرض صحيح ولا ضير فيه ,

اقتباس
سؤال اخر الله يحفظك ، كيف ممكن اصل لعلاقات النظام الرئيسية بال SQL

هل تقصد العلاقات بين جداول النظام الأساسية ؟

إذا كان هذا قصدك فأنا بقلّك إنو هذه المسألة تتم بالإطلاع على شرح ما يحويه كل جدول نظام من بيانات وهذه

تعتمد على قراءة الـ Help أقصد الـ Books On Line بالدرجة الأولى ..

بالتوفيق ..

تم تعديل هذه المشاركة بواسطة imadouzoun في 30 يوليو 2007 في 17:57

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

#7

شكرا جزيلا لقد زبط المثال ووجدت بعض المشاكل لكن اوؤكد ان الكود محترف وجميل :)

حياك الله

اقصد العلاقات بين الجداول النظامية صحيح ... كيف اصل لها

هذا الموضوع مغلق.

مواضيع مشابهة