Опитвам се да създам SP, който извършва някаква обработка на всяка таблица, която съдържа конкретно име на поле
Така че планът ми беше да създам курсор, за да получа всички тези таблици, след което да подготвя динамичен sql за обработка.
Имам следния код
declare schema_cursor cursor
for
SELECT INFORMATION_SCHEMA.TABLES.TABLE_SCHEMA, INFORMATION_SCHEMA.TABLES.TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES INNER JOIN
INFORMATION_SCHEMA.COLUMNS ON INFORMATION_SCHEMA.TABLES.TABLE_SCHEMA = INFORMATION_SCHEMA.COLUMNS.TABLE_SCHEMA AND
INFORMATION_SCHEMA.TABLES.TABLE_NAME = INFORMATION_SCHEMA.COLUMNS.TABLE_NAME
WHERE (INFORMATION_SCHEMA.TABLES.TABLE_TYPE = 'BASE TABLE') AND (INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME = N'TargetFieldName')
open schema_cursor
fetch next from schema_cursor into @schema, @table
while (@@FETCH_STATUS=0)
begin
Ако изпълня директно заявката за курсора, получавам всички имена на таблици, от които се нуждая. Но когато изпълня код по-горе, @@FETCH_STATUS връща -1 и не се извлича ред.
какво правя грешно
Благодаря
AND (INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME = N'TargetFieldName')
. Сигурни ли сте, че изборът връща редове? - person Martin Smith   schedule 11.01.2012