存储过程中可以使用参数做为数据库名吗?
我想在两个数据库之前导入导出一些数据.想把数据库名做为参数传到存储过程中,但运行时提示对象名无效.
不知道这样写对不对,能不能实现???
create procedure JfRecordP
@databaseS varchar(50),
--目标数据库
@databaseT varchar(50) as
select @databases,@databaseT
DELETE FROM [@databaseS]..tjbtemp
INSERT INTO [@databaseS].[dbo].[tjbtemp]([CsCardId], [Maxid])(SELECT cardid,MAX(AutoID) AS Expr1
FROM [@databaseS].[dbo].[JfRecord]
WHERE ([CardId] <> '')
GROUP BY [CardId])
INSERT INTO [@databaseT].[dbo].[JfRecord]
(CardId, iYear, iperiod, dDate, Zy, mCk, bzs, syl, Moneys, FjfMoneys, EcgxMoneys,
mJe, mznj, UserID, cPrint, cSend)
(SELECT [@databaseS].[dbo].[JfRecord].CardId, [@databaseS].[dbo].[JfRecord].iYear, [@databaseS].[dbo].[JfRecord].iperiod, [@databaseS].[dbo].[JfRecord].dDate, [@databaseS].[dbo].[JfRecord].Zy,
[@databaseS].[dbo].[JfRecord].mCk, [@databaseS].[dbo].[JfRecord].bzs,[@databaseS].[dbo].[JfRecord].syl, [@databaseS].[dbo].[JfRecord].Moneys, [@databaseS].[dbo].[JfRecord].FjfMoneys,
[@databaseS].[dbo].[JfRecord].EcgxMoneys, [@databaseS].[dbo].[JfRecord].mJe, [@databaseS].[dbo].[JfRecord].mznj, [@databaseS].[dbo].[JfRecord].UserID,
[@databaseS].[dbo].[JfRecord].cPrint, [@databaseS].[dbo].[JfRecord].cSend
FROM [@databaseS].[dbo].[JfRecord] INNER JOIN
[@databaseS].[dbo].[tjbtemp] ON [@databaseS].[dbo].[JfRecord].AutoID = [@databaseS].[dbo].[tjbtemp].Maxid)
go