Разработка
03
Дек
0

Поиск данных неизвестно где

Если у Вас есть какие-либо данные (например, GUID записи), но Вы не знаете какому объекту CRM они принадлежат, то можно выполнить поиск среди всех таблиц и всех столбцов по искомому значению и скулю покажет Вам название таблицы и название столбца.

Выполните такой SQL-код:

USE superfirma_MSCRM

Declare
	@TN as varchar(200),
	@CN as varchar(200),
	@myValue varchar(38),
	@SQL as nvarchar(1000),
	@SN as varchar(200)

Create Table #myTable (Table_Name varchar(200), Column_Name varchar(200), Number_Of_Rows int)

-- Искомая строка
Set @myValue = '28F37DAE-D078-E411-93F7-000C29EAF228'

Declare myCursor Cursor For
Select
	T.Table_Name,
	C.Column_Name,
	T.Table_Schema
From
	INFORMATION_SCHEMA.TABLES T Inner Join INFORMATION_SCHEMA.COLUMNS C
		On T.Table_Schema = C.Table_Schema And T.Table_Name = C.Table_Name
Where
	1=1
	And T.Table_Name <> 'dtproperties'
	And Table_Type = 'Base Table'
	And C.Data_Type In ('uniqueidentifier')
	-- Поиск других типов данных
	-- And C.Data_Type In ('text','ntext')
	-- And C.Data_Type In ('tinyint','int','bigint','numeric','decimal','money','float','smallint','real','smallmoney')
	-- And C.Data_Type In ('datetime','dmalldatetime')

Open myCursor
Fetch Next From myCursor Into @TN, @CN, @SN
While @@Fetch_Status <> -1
Begin
EXECUTE ( N'Insert Into #myTable Select ''' + @SN + '.' + @TN + ''', ''' + @CN + ''', Count(*) From [' + @SN + '].[' + @TN + '] Where [' + @CN + '] = CONVERT(uniqueidentifier ,''' + @myValue + ''' )')

Fetch Next From myCursor Into @TN, @CN, @SN
End
Close myCursor

Deallocate myCursor

Select * 
From #myTable 
Where Number_Of_Rows > 0 
Order By Table_Name

Drop Table #myTable


Комментарии (0)

*

code