2011-08-31 68 views
6

例如,假設我有一個觀點:如何在SQL Server 2005中查找派生的視圖類型?

CREATE VIEW [dbo].[PaymentSchedule_vw] 
AS 
    SELECT 
     [Order].Id    [Order Id] 
     ,[PaymentSchedule].Date [Payment Date] 
    FROM 
     _Order123 [Order] 
     INNER JOIN 
      _Order123_Shedule [PaymentSchedule] 
      ON 
      [Order].Id = [PaymentSchedule].OrderId 

GO 

如何發現的各類[Order Id][Payment Date]

回答

7
SELECT c.name, 
     t.name, 
     c.max_length, 
     c.precision, 
     c.scale 
FROM sys.columns c 
     JOIN sys.types t 
     ON t.user_type_id = c.user_type_id 
      AND t.system_type_id = c.system_type_id 
WHERE object_id = OBJECT_ID('PaymentSchedule_vw') 

或者你可以使用SQL_VARIANT_PROPERTY - some examples here

5
SELECT top 1 
     SQL_VARIANT_PROPERTY([Order Id], 'BaseType') OrderIdBaseType, 
     SQL_VARIANT_PROPERTY([Payment Date], 'BaseType') PaymentDateBaseType 
FROM [PaymentSchedule_vw] 

您應檢查以下屬性:

SQL_VARIANT_PROPERTY(<column>, 'BaseType'), 
SQL_VARIANT_PROPERTY(<column>, 'Precision'), 
SQL_VARIANT_PROPERTY(<column>, 'Scale'), 
SQL_VARIANT_PROPERTY(<column>, 'MaxLength') 

Advanage使用SQL_VARIANT_PROPERTY的是,它也可以在計算列和表達式

使用