我想用作爲參數傳遞的列名和列值來更新存儲過程中的條目,我該怎麼做。在存儲過程中發送列名和值作爲參數
0
A
回答
0
嘗試用這種
IF @COLUMNNAMEVALUEVARCHAR <> '' OR @COLUMNNAMEVALUEVARCHAR is not NULL
IF @COLUMNNAMEVALUEFLOAT <> '' OR @COLUMNNAMEVALUEFLOAT is not NULL
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
至少試着理解代碼,如果遇到問題,請問,我們可以解釋。如果你瞭解代碼,至少你今天會學到一些東西。 –
相關問題
- 1. 通輸入參數作爲列名在存儲過程中
- 2. 發送參數到存儲過程vb.net
- 3. 將參數發送到存儲過程
- 4. 發送參數到存儲過程
- 5. 發送一個DataTable作爲存儲過程的參數
- 6. SQL Server存儲過程參數值作爲數據庫名
- 7. MySQL存儲過程,使用列名作爲參數
- 8. 存儲過程名爲out參數
- 9. 如何在存儲過程中將列作爲參數傳遞?
- 10. 如何發送表名作爲Mysql的存儲過程
- 11. 發送值列表作爲參數
- 12. 發送參數到存儲過程在SQL Server 2008中
- 13. SQL Server:表名作爲存儲過程中的參數
- 14. Db名稱作爲存儲過程中的參數SQL Server
- 15. 通過字段名稱作爲存儲過程的參數
- 16. SQL存儲過程 - 表作爲參數
- 17. 存儲過程中參數的表名
- 18. 存儲過程使用的數據表,表名作爲參數
- 19. 數字陣列作爲存儲過程的參數(MySQL的),用於選擇其中在存儲過程中,()
- 20. 如何通過項目作爲參數列表存儲過程
- 21. 發送空值到存儲過程
- 22. 發送空列表到存儲過程
- 23. DESC和ASC作爲存儲過程中的參數
- 24. 以發送參數存儲過程在循環
- 25. Mysql存儲過程獲取表名作爲參數
- 26. 爲Oracle dbms_scheduler作業存儲過程設置命名參數
- 27. 如何將表名作爲參數傳遞給存儲過程?
- 28. Mysql存儲過程不把表名作爲參數
- 29. ExtJS的:發送Radigroup名稱和值作爲參數
- 30. 在存儲過程中使用變量作爲列名稱?
我的問題是更新語句傢伙 –