
MSSQL
В БД есть несколько одинаковых по структуре таблиц отличающихся только названием.
Есть хранимая процедура, в которую передаются параметры и имя таблицы, с которой быдут производится действия.
Запрос примерно такой:
.....
DECLARE @CompanyProfiles varchar(800),
DECLARE @CompanyDescription text
DECLARE @ObjectName Varchar(100)
SELECT @ObjectName = 'dbo.Company'
INSERT INTO что-то = @ObjectName
(CompanyProfiles, CompanyDescription)
VALUES(@CompanyProfiles, @CompanyDescription)
....
Преобразование в строку запроса INSERT в данном случае не проходит.
Здравствуйте Pavel B, Вы писали:
PB>
MSSQL
PB>В БД есть несколько одинаковых по структуре таблиц отличающихся только названием.
PB>Есть хранимая процедура, в которую передаются параметры и имя таблицы, с которой быдут производится действия.
PB>Запрос примерно такой:
PB>
PB>.....
PB>DECLARE @CompanyProfiles varchar(800),
PB>DECLARE @CompanyDescription text
PB>DECLARE @ObjectName Varchar(100)
PB>SELECT @ObjectName = 'dbo.Company'
PB>INSERT INTO что-то = @ObjectName
PB>(CompanyProfiles, CompanyDescription)
PB>VALUES(@CompanyProfiles, @CompanyDescription)
PB>....
PB>
PB>Преобразование в строку запроса INSERT в данном случае не проходит.
Здравствуйте Pavel B, Вы писали:
PB>
MSSQL
PB>В БД есть несколько одинаковых по структуре таблиц отличающихся только названием.
PB>Есть хранимая процедура, в которую передаются параметры и имя таблицы, с которой быдут производится действия.
PB>Запрос примерно такой:
PB>.....
Попробуй так:
DECLARE @CompanyProfiles varchar(800),
DECLARE @CompanyDescription text
DECLARE @ObjectName Varchar(100)
SELECT @ObjectName = 'dbo.Company'
EXEC ('INSERT INTO '
+ @ObjectName
+' (CompanyProfiles, CompanyDescription) '
+'VALUES(@CompanyProfiles, @CompanyDescription)')
Здравствуйте Zar, Вы писали:
Zar>Zar>DECLARE @CompanyProfiles varchar(800),
Zar>DECLARE @CompanyDescription text
Zar>DECLARE @ObjectName Varchar(100)
Zar>SELECT @ObjectName = 'dbo.Company'
Zar>EXEC ('INSERT INTO '
Zar> + @ObjectName
Zar> +' (CompanyProfiles, CompanyDescription) '
Zar> +'VALUES(@CompanyProfiles, @CompanyDescription)')
Zar>
А еще лучше написать на каждую таблицу свою хранимую процедуру (сделать скрипт, который их генерирует). И вызывать нужную прямо из приложения. Просто в таком варианте польза от хранимой процедуры стремится к нулю.
Здравствуйте Pavel B, Вы писали:
PB>
MSSQL
PB>В БД есть несколько одинаковых по структуре таблиц отличающихся только названием.
PB>Есть хранимая процедура, в которую передаются параметры и имя таблицы, с которой быдут производится действия.
PB>Запрос примерно такой:
PB>
PB>.....
PB>DECLARE @CompanyProfiles varchar(800),
PB>DECLARE @CompanyDescription text
PB>DECLARE @ObjectName Varchar(100)
PB>SELECT @ObjectName = 'dbo.Company'
PB>INSERT INTO что-то = @ObjectName
PB>(CompanyProfiles, CompanyDescription)
PB>VALUES(@CompanyProfiles, @CompanyDescription)
PB>....
PB>
PB>Преобразование в строку запроса INSERT в данном случае не проходит.
Как я понял вам нужен динамический запрос. Это отлично описал уважаемый Glory здесь:
http://www.sql.ru/cgi-bin/UltraBoard/UltraBoard.pl?Action=ShowPost&Board=mssql&Post=4156&Idle=365&Sort=0&Order=Descend&Page=0&Session=