2013-11-25 35 views
0

我有很多交叉DB 視圖。想要使用DB名稱的變量進行修改。使用變量作爲DB名稱來生成視圖

例如 電流:

SELECT  field1, field2, field3, field4 
FROM   companyDB2.dbo.Company_Users AS Company_Users_1 

旺旺: (僞代碼)

'SELECT  field1, field2, field3, field4 FROM ' 
+ @companyDBname 
+ '.dbo.Company_Users' 

我是最好使用表值UDF?

回答

0

動態SQL是全有或全無......

set @sql = 'SELECT field1, field2, field3, field4 FROM ' + @companyDBname + '.dbo.Company_Users AS Company_Users_1' 

exec @sql 

有相當的允許使用EXEC(SQL注入),警惕的是,做一個小小的研究

+0

欣賞的幾個安全隱患你的嘗試。我不認爲你明白我想要完成的事情。請讓我解釋一下。 我正在嘗試在視圖定義中引入一個動態元素。主要是:它將引用的(外部)模式。 視圖定義不會接受一個執行命令或參數(因此我的僞) 我的相信,我將不得不報廢的意見,並嘗試使用一個用戶定義函數(將接受一個參數) PS我也痛苦地意識到SQL注入。謝謝 – DaniDev