2017-03-23 37 views
0

我有一個重型邏輯/數據處理組件的SQL Server數據庫。 很多原始表,「工作表」,sprocs,函數,視圖。作品。檢查SQL系統中的數字類型定義

我的任務是將主要作爲int處理的重要概念值(但偶爾在2個d.p.)轉換爲處理爲3個d.p.的特定概念值。 Yeuch!

命名並不算太壞,所以你通常可以判斷一個列/變量/參數是否僅僅從它的名字中保存了這種類型的數據。

到目前爲止,我已檢查:

  • 表列(INFORMATION_SCHEMA.COLUMNS
  • 存儲過程和函數功能PARAMS(在&下)(INFORMATION_SCHEMA.PARAMETERS
  • 搜索的DECLARE實例的所有存儲過程/ funcs中/意見,CASTCONVERT
  • 試圖找到任何已知的地方執行任何部門,以確保他們沒有做整數除法。

有沒有人對我可能錯過的地方有任何建議,可能是以靜態方式將這些值之一存儲爲int(或者作爲錯誤的精度)?

+0

是什麼'2 dp'和'3 dp' –

+0

「小數」 – Brondahl

回答

0

如果你想找到它在SP /視圖/ UFN定義,這可能會幫助(字面搜索的定義,這樣可以用來找到任何字符串):

SELECT DISTINCT 
     o.name AS Object_Name 
    , o.type_desc 
FROM 
    sys.sql_modules m 
    INNER JOIN sys.objects o 
     ON m.object_id = o.object_id 
WHERE 
    m.definition Like '%$ObjectName$%' 

否則,你可以找到引用,使用這些取決於對象(只對象,所以沒有列名的作品,但你可以隨時加入SYS.COLUMNS太)

SELECT 
     referencing_schema_name 
    , referencing_entity_name 
    , referencing_id 
    , referencing_class_desc 
    , is_caller_dependent 
FROM 
    sys.dm_sql_referencing_entities ('$ObjectName$', 'OBJECT') 
; 

SELECT 
     referenced_id 
    , referenced_entity_name AS table_name 
    , referenced_minor_name as column_name 
    , is_all_columns_found 
FROM 
    sys.dm_sql_referenced_entities ('$ObjectName$', 'OBJECT') 
; 

SELECT 
    OBJECT_SCHEMA_NAME (referencing_id) AS referencing_schema_name, 
    OBJECT_NAME(referencing_id) AS referencing_entity_name, 
    o.type_desc AS referencing_desciption, 
    COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id, 
    referencing_class_desc, referenced_class_desc, 
    referenced_server_name, referenced_database_name, referenced_schema_name, 
    referenced_entity_name, 
    COALESCE(COL_NAME(referenced_id, referenced_minor_id), '(n/a)') AS referenced_column_name, 
    is_caller_dependent, is_ambiguous 
FROM 
    sys.sql_expression_dependencies AS sed 
    INNER JOIN sys.objects AS o 
     ON sed.referencing_id = o.object_id 
WHERE 
    referenced_id = OBJECT_ID(N'$ObjectName$') 
; 
+0

第一塊是我目前正在做的搜索。第二塊看起來很有趣,但我還沒有完全清楚它到底在幹什麼 - 我會看看:) – Brondahl

+0

然後對你來說沒什麼新東西,對不起。編輯的奇蹟。你有什麼可玩的,玩得開心:) – Pred

相關問題