كيف يمكنني الحصول على SQL Server مع تعريف العمود قوسين وكل شيء؟

StackOverflow https://stackoverflow.com/questions/253324

سؤال

وأنا بحاجة إلى وسيلة ذكية للحصول على أنواع البيانات من INFORMATION_SCHEMA.COLUMNS بطريقة يمكن استخدامها في CREATE TABLE بيان. المشكلة هي حقول "إضافية" التي تحتاج إلى أن يكون مفهوما، مثل NUMERIC_PRECISION وNUMERIC_SCALE.

والواضح، ويمكنني أن تجاهل الأعمدة لعدد صحيح (دقة 10 و مقياس من 0)، ولكن هناك أنواع أخرى أود أن تكون مهتمة، مثل NUMERIC. حتى دون كتابة الكثير من التعليمات البرمجية لتحليل الجدول، أي أفكار عن كيفية الحصول على نوع من الاختزال الحقل من تعريف العمود؟

وأود أن تكون قادرة على الحصول على شيء من هذا القبيل: كثافة العمليات، التاريخ والوقت، مال، الرقمية ** (10،2) **

نصائح أخرى

select column_type = data_type + 
    case
        when data_type like '%text' then ''
        when data_type like '%char' and character_maximum_length = -1 then '(max)'
        when character_maximum_length is not null then '(' + convert(varchar(10), character_maximum_length) + ')'
        when data_type = 'numeric' then '(' + convert(varchar(10), isnull(numeric_precision, 18)) + ', ' + 
            convert(varchar(10), isnull(numeric_scale, 0)) + ')'
        else ''
    end
,*
from information_schema.columns

وSMO البرمجة ينبغي أن تأخذ الرعاية من الأجيال النصي. وأعتقد أن هذا هو ما يستخدم MS في إدارة Studio SQL للأجيال النصي.

http://msdn.microsoft.com/en-us/library /ms162153.aspx

وYourComment - I need a smart way to get the data types out of INFORMATION_SCHEMA.COLUMNS in a way that could be used in a CREATE TABLE statement

وهذا ما طلبتم. أقل من ذلك، سيكون لديك لتحليل معلومات المخطط عرض النتائج.

إذا كنت تستخدم SMO يمكنك الحصول على كل الدقة والحجم عن طريق الوصول إلى خصائص colletion من في كائن عمود

وColumn.Property [ "NumericScale"]. القيمة

وColumn.Property [ "NumericPrecision"]. القيمة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top