我在MSCRM中有一个带有活动实体的错误。我有活动guid但不幸的是,多个实体被认为是活动,所以它可以在任何这些表上,包括可能是自定义表。所以我想要这样一个SQL查询来选择TableName,ColumnName和ColumnValue,其中ColumnName就像'%id'。我有这个通过名称选择列但我无法弄清楚如何从这个
获取值select * from INFORMATION_SCHEMA.COLUMNS
where COLUMN_NAME like '%id'
order by TABLE_NAME
我无权创建过程
答案 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)
<强>返回强>