2012-09-13 62 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

至少試着理解代碼,如果遇到問題,請問,我們可以解釋。如果你瞭解代碼,至少你今天會學到一些東西。 –

相關問題