使用動態SQL我想將兩列插入到表中。第二列將使用從另一個存儲過程傳入的兩個參數進行計算。我知道我可以做以下使用sp_execute但想知道如果我能做到使用類似剛剛EXEC在動態SQL中乘以數值
DECLARE @vsql nvarchar(max)
DECLARE @p1 numeric
SET @p1 = 5
SET @vsql = ' Select PORTFOLIO_CODE, (@p1 * @p1) as leverage
INTO greg
from ssc.slh
select * from greg'
Exec sp_executesql
@stmt = @vsql,
@params = N'@p1 as numeric',
@p1 = @p1
我能做到這一點使用Exec的?以下似乎不起作用的乘法操作數是否需要成爲一個sting文字?
DECLARE @vsql爲nvarchar(最大)
DECLARE @p1 numeric
SET @p1 = 5
SET @vsql = ' Select PORTFOLIO_CODE, (' + @p1 * @p1 + ') as leverage
INTO greg
from ssc.slh
select * from greg'
Exec sp_executesql
你爲什麼要用動態sql? –
它不起作用的原因是您需要將結果轉換爲(n)varchar(x)以便將其與其餘的結合起來 –