sp_MSForceachtable для создания списка идентификаторов в базе данных - PullRequest
0 голосов
/ 05 июня 2019

Мне нужно создать таблицу, которая будет содержать все идентификаторы Salesforce для слияния / переноса организации, над которыми я работаю.Эта таблица будет использоваться для перекрестной ссылки полиморфных ключей.Я смотрю на использование sp_MSforceachtable для создания списка идентификаторов, так как я хочу захватить каждый идентификатор из каждого объекта в исходных организациях.

Я сталкиваюсь с проблемами при добавлении столбца, чтобы сообщить мне, из какой таблицы получена запись, а с какой организации (я хочу, чтобы это было сделано в целях аудита).Вот код, который у меня есть для создания списка, который я хотел бы изменить для каждой исходной базы данных.

Проблема, с которой я сталкиваюсь, заключается в том, чтобы избежать двойных кавычек в динамическом SQL, и как получить имя таблицы из Infosys.Вот код, который работает:

use Staging
go

exec sp_MSforeachtable

'IF EXISTS (SELECT * FROM Salesforce.INFORMATION_SCHEMA.COLUMNS WHERE 
TABLE_SCHEMA=PARSENAME("?",2) AND TABLE_NAME=PARSENAME("?",1) AND 
COLUMN_NAME="ID")
BEGIN
    INSERT INTO staging.dbo.tpKeyList
    (ID)
    (SELECT ?.ID FROM ? 
    LEFT JOIN Staging.dbo.tpkeylist b on b.ID = ?.ID
        WHERE b.ID is null
        and ?.Id is not null
        )
END
'

Любая помощь будет оценена.

...