我有存儲過程。爲此,我需要傳遞數據庫名稱作爲來自另一個應用程序或另一個SP的參數。我知道動態SQL的方法,就像,SQL Server動態存儲過程
Create procedure mysp(@dbname varchar(20))
as
begin
declare @sql varchar(max)
set @sql='select * from '[email protected]+'.dbo.table'
end
exec mysp 'mydb'
但我不希望SQL語句作爲字符串。因爲在我的SP中,我有很多Sql語句即將到來(不像這隻有SELECT語句)。所以我可以使用,
USE DatabaseName
存儲過程裏面,這樣我可以在SQL語句中直接使用的數據庫名稱未做它作爲字符串。或者有任何其他的方法。 我的要求,只爲db名稱,我不希望整個sql語句是動態的... 請幫我。 在此先感謝。
我得到了一個解決方案。 – 2011-02-28 13:30:13
declare @sql varchar(max) set @sql='USE '[email protected]
然後繼續進行DML查詢......它正在工作 – 2011-02-28 13:31:36@Robin clave:你的意思是說你按照我的建議做了嗎?或者你是否只在動態查詢中包含'USE ...',其餘的語句是SP的適當部分? – 2011-02-28 14:00:16