2012-09-13 35 views

回答

0

尝试用这种

IF @COLUMNNAMEVALUEVARCHAR <> '' OR @COLUMNNAMEVALUEVARCHAR is not NULL 

IF @COLUMNNAMEVALUEFLOAT <> '' OR @COLUMNNAMEVALUEFLOAT is not NULL 
+1

我的问题是更新语句家伙 –

2

对于这样的事情,你将需要使用动态SQL

喜欢的东西

CREATE TABLE #Test(
     ID INT, 
     Val VARCHAR(20) 
) 

INSERT INTO #Test SELECT 1, '2' 

SELECT * 
FROM #Test 

DECLARE @ColumnName VARCHAR(MAX), 
     @ParamValue VARCHAR(MAX), 
     @Lookup INT 

SELECT @ColumnName = 'Val', 
     @ParamValue = 'tada', 
     @Lookup = 1 

DECLARE @SQL VARCHAR(MAX) 
SELECT @SQL = 'UPDATE #Test SET ' + @ColumnName + ' = ''' + @ParamValue + ''' WHERE ID = ' + CAST(@Lookup AS VARCHAR(MAX)) 
EXEC (@SQL) 

SELECT * 
FROM #Test 

DROP TABLE #Test 
+0

能否请你让你的代码更符合我需要做的事 –

+0

你还可以看到我的更新语句有什么问题,可能我不应该使用相同的语法用于Varchar和Float更新。 –

+0

至少试着理解代码,如果遇到问题,请问,我们可以解释。如果你了解代码,至少你今天会学到一些东西。 –

相关问题