我一直在与这句话作斗争:
ALTER PROCEDURE [dbo].[transact_image_update]
-- Add the parameters for the stored procedure here
@transact_recordID_int int,
@image1_bin image,
@image2_bin image,
@transact_referenceNo_str nvarchar(25),
@userID_last uniqueidentifier,
@tableName nvarchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @sqlUpdt01 nvarchar(4000)
SET @sqlUpdt01 = '
Update [dbo].[' + @tableName + '] SET [image1_bin] = '+ CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), @image1_bin), 2)
+ ', [image2_bin] = '+ CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), @image2_bin), 2)
+', [userID_last] = '''+ convert(nvarchar(4000),@userID_last)
+ ''' WHERE (transact_recordID_int = '+convert(varchar,@transact_recordID_int) +')
AND ([transact_referenceNo_str] = ''' +convert(varchar, @transact_referenceNo_str)
+''' )
AND (locked_bol = 0)
'
exec sp_executesql @sqlUpdt01
基本上,我有许多具有相似模式但名称不同的DB表(对于事务类型),并且希望这个ONE过程在表名作为参数的情况下进行更新。此脚本成功编译,但执行无法更新图像字段。我缺少转换吗?
请帮忙。
答案 0 :(得分:-1)
在下面的行中输入正确的类型
正确的行 +''' WHERE(transact_recordID_int =' + convert(varchar,@ transact_recordID_int)+
正确的行 +''' WHERE(transact_recordID_int =' + @transact_recordID_int +