我想用作为参数传递的列名和列值来更新存储过程中的条目,我该怎么做。在存储过程中发送列名和值作为参数
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. 在存储过程中使用变量作为列名称?
我的问题是更新语句家伙 –