Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 использование переменной в операторе DELETE  [new]
ЯЧЯЧ
Guest
Имеется маленький скрипт:
USE [DateBaseName]
DECLARE @pTableName varchar(255)

DECLARE pTablesClearCursor CURSOR FOR
SELECT sysobjects.name from sysobjects
WHERE sysobjects.type = 'U' -- User Tables
AND substring(sysobjects.name,1,1) = 'p' -- pTables with temp data
ORDER BY sysobjects.name

OPEN pTablesClearCursor
FETCH NEXT FROM pTablesClearCursor
INTO @pTableName

WHILE @@FETCH_STATUS = 0
BEGIN
--------------------------------------------------------------------!!!!!!
DELETE FROM @pTableName -- Данную строку отказывается принимать
--------------------------------------------------------------------!!!!!

FETCH NEXT FROM pTablesClearCursor
INTO @pTableName
END

CLOSE pTablesClearCursor
DEALLOCATE pTablesClearCursor

GO
31 янв 04, 15:54    [515774]     Ответить | Цитировать Сообщить модератору
 Re: использование переменной в операторе DELETE  [new]
Fedotov Alex
Member

Откуда:
Сообщений: 167
Вообще в таком случае надо использовать sp_executesql см. FAQ

А в конкретном подойдет

exec sp_msforeachtable @command1 = N'delete from ''?''', @whereand = 'and substring(o.name,1,1) = ''p'''
31 янв 04, 17:02    [515811]     Ответить | Цитировать Сообщить модератору
 Re: использование переменной в операторе DELETE  [new]
m1
Member

Откуда:
Сообщений: 11
Все на самом деле очень просто. Вот какая у тебя должна строка быть
пример:
DECLARE @test varchar(255)

set @test='tbl_name'
EXECUTE ('select * from example_db.dbo.'+@test)
31 янв 04, 17:14    [515822]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить