【发布时间】:2011-02-28 18:16:33
【问题描述】:
我有存储过程。为此,我需要将数据库名称作为来自另一个应用程序或另一个 SP 的参数传递。我知道动态 SQL 的方法,比如,
Create procedure mysp(@dbname varchar(20))
as
begin
declare @sql varchar(max)
set @sql='select * from '+@dbname+'.dbo.table'
end
exec mysp 'mydb'
但我不希望将 SQL 语句作为字符串。因为在我的 SP 中,我有许多 Sql 语句即将到来(不像这样只有 SELECT 语句)。那我可以用吗,
USE DatabaseName
在存储过程中,这样我就可以直接在 sql 语句中使用数据库名称,而无需将其作为字符串。或者有任何其他方法。 我的要求,仅针对数据库名称,我不希望整个 sql 语句是动态的... 请帮帮我。 提前致谢。
【问题讨论】:
标签: sql-server stored-procedures