Как получить возвращаемое значение из EXEC sp_executesql @OpenQry, чтобы я мог проверить, существует ли значение в IF EXISTS?Как получить возвращаемое значение из EXEC sp_executesql
DECLARE @TableName VARCHAR(25)
DECLARE @TD_QUERY NVARCHAR(MAX)
DECLARE CUR_QRY CURSOR FOR
SELECT TABLENAME FROM dbo.tbl_table
OPEN CUR_QRY
FETCH NEXT FROM CUR_QRY INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @OpenQry = 'SELECT * FROM OPENQUERY(linkedserver,''SELECT TABLENAME FROM DBC.TABLES WHERE TABLEKIND=''''T'''' AND DATABASENAME=''''dbname'''' AND TABLENAME=''''' + @TableName + ''''''')'
EXEC sp_executesql @OpenQry
IF EXISTS (SELECT @OpenQry)
AND EXISTS (SELECT TableName FROM dbo.table WHERE [email protected])
FETCH NEXT FROM CUR_QRY INTO @TableName
END
CLOSE CUR_QRY
DEALLOCATE CUR_QRY
Вы должны поместите результаты вашего динамического sql в таблицу (постоянная, временная или переменная). Есть ли причина, по которой вы не можете просто запросить сервер ссылок? Этот подход к курсору будет высасывать жизнь из вашей работы. –
Возможный дубликат [Как получить результат sp \ _executesql в переменную?] (Http://stackoverflow.com/questions/803211/how-to-get-sp-executesql-result-into-a-variable) – DeanOC