列名无效

今天想写一个简单的通用的更新存储过程

ALTER PROCEDURE [dbo].[pro_lw_UpdateDynamic]
@FiledName nvarchar(250),
@FiledValue nvarchar(4000),
@TableName nvarchar(250),
@WhereCondition nvarchar(500)

AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

DECLARE @SQL nvarchar(3250)

SET @SQL = '
UPDATE [dbo].['
+@TableName+
'] SET ['
+@FiledName+
'] = '
+@FiledValue+
'
WHERE '
+ @WhereCondition


EXEC
sp_executesql @SQL

RETURN

能通过,但是在测试时,却提示列名无效,后来在http://www.cnblogs.com/xkforever/archive/2007/04/24/725563.html?logined=1

找到答案,原来是FiledValue应该放在单引号'内,

所以正确的写法是,是将上面红色部分改为:'''+@FiledValue+'''

posted @ 2008-04-23 14:05  liangwei389  Views(3929)  Comments(0Edit  收藏  举报