2014-09-04 69 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