2014-09-04 72 views
-2

我有三列COL1一樣,COL2,COL3SQL服務器更新查詢

這些值存儲在一個變量@col_name

update investment 
set bbg = [email protected]_name 

我會把這個聲明在一個循環,這樣一個一個的值(col1)將在那裏變量

但它給錯誤。任何人都可以幫助我做到這一點?

+0

你能發表你寫的代碼嗎? – splrs 2014-09-04 08:46:57

+1

什麼樣的錯誤?你能舉一個你想要做什麼的例子嗎? – 2014-09-04 08:47:07

+4

沒有'WHERE'子句的'UPDATE'語句可能非常危險,除非你真的想更新整個表。 – 2014-09-04 08:48:07

回答

0

不可能。您不能在變量中包含字段名稱。不受SQL Server支持。你會知道你是否願意閱讀錯誤。它可能會告訴你非常清楚。

您將不得不動態發佈SQL

0

您需要針對您的要求使用動態sql。我也敦促你申請一個相關的WHERE條款。

DECLARE @col_name AS VARCHAR(50) 
SET @col_name = 'Col1' -- Or 'Col2' Or 'Col3' 

DECLARE @SQL AS VARCHAR(1000) 
SET @SQL = 'UPDATE investment SET bbg = QUOTENAME(' + @col_name + ')' 

EXEC @SQL