我想使用动态sql执行我的sp,其中iam在参数
中传递数据库名称如果我使用这种方式,我必须使用floowing代码
use @dbName
go
exec(@Sql)
其中@dbName是针对数据库名称引用的,而@Sql引用了我想要执行的整个查询 我使用的是Sql server 2005 我的代码如下
set @cSQL=@dbName+'.dbo.sp_helptext '''+@cName+''''
现在我想执行这个存储过程,所以目标数据库是新数据库,下一行需要一个use @dbname
Go后跟一个sql语句
有人可以帮助我吗?
答案 0 :(得分:1)
我刚试过这个,它适用于没有USE
或GO
的SQL Server 2000 ...
declare @dbname as varchar(100), @sql as varchar(100)
set @dbname = 'my-database'
set @sql = 'my-stored-procedure'
set @Sql = QUOTENAME(@dbName) + '.dbo.sp_helptext ''' + @Sql + ''''
exec(@Sql)