2017-05-25 38 views
2

我有MSCRM錯誤與活動的實體。我有活動指導,但不幸的是多個實體被認爲是活動,所以它可以在任何這些表上,包括可能的自定義表。所以我想要這樣一個SQL查詢來選擇TableName,ColumnName和ColumnValue,其中ColumnName就像'%id'。我有這個它是由名稱選擇列,但我無法弄清楚如何從這個SQL選擇表名,,ColumnName和ColumnValue

select * from INFORMATION_SCHEMA.COLUMNS 
where COLUMN_NAME like '%id' 
order by TABLE_NAME 

獲得的價值,我沒有權限創建proceedures

+0

information_schema只是存儲元數據,您不會從表中獲取表中的值。查詢實際的表... – fancyPants

+0

我也需要查詢表名。它需要使用一個名稱匹配的「%ID」 –

+0

對不起和「東西」的價值得到任何列的表名和列名 –

回答

2

小動態SQL可能會有幫助。

您可能注意到,我排除的意見,以避免多餘的信息(我使用的視圖的命名約定)... Table_Name not like 'vw_%'您可以排除與意見加盟INFORMATION_SCHEMA.Tables

Declare @SQL varchar(max) 
Set @SQL=Stuff((Select 'Union All ' +Expr 
       From (
         Select Expr = 'Select Table_Schema='''+Table_Schema+''',Table_Name='''+Table_Name+''',Column_Name='''+Column_Name+''',Value=cast('+Column_Name+' as varchar(max)) From '+quotename(Table_Schema)+'.'+quoteName(Table_Name)+' ' 
         From INFORMATION_SCHEMA.COLUMNS 
         Where COLUMN_NAME like '%id' 
          and Table_Name not like 'vw_%' 
         ) A 
       For XML Path ('')),1,10,'') 
Exec(@SQL) 

返回

enter image description here