CREATE PROCEDURE [dbo].[sw_UpdateUserPwd]
(
@UserName varchar (50),
@Pwd varbinary (50) ,
@UserTable varchar(50)
)
AS
SET NOCOUNT ONdeclare @sql varchar(200)set @sql=N'UPDATE '+@UserTable+' SET PWD = '''+@Pwd+''' WHERE (USERNAME='+@UserName+')'
exec sp_executesql @sql GO
(
@UserName varchar (50),
@Pwd varbinary (50) ,
@UserTable varchar(50)
)
AS
SET NOCOUNT ONdeclare @sql varchar(200)set @sql=N'UPDATE '+@UserTable+' SET PWD = '''+@Pwd+''' WHERE (USERNAME='+@UserName+')'
exec sp_executesql @sql GO
(
@UserName varchar (50),
@Pwd varbinary (50) ,
@UserTable varchar(50)
)
AS
SET NOCOUNT ONdeclare @sql varchar(200)set @sql=N'UPDATE '+@UserTable+' SET PWD = '''+@Pwd+''' WHERE (USERNAME='''+@UserName+''')'
exec sp_executesql @sql GO
对数据类型而言运算符无效。运算符为 add,类型为 nvarchar。
用varchar(50)就可以了
(
@UserName varchar (50) ,
@Pwd varchar (50) ,
@UserTable varchar(50)
)
AS
SET NOCOUNT ONdeclare @sql nvarchar(4000)set @sql=N'UPDATE '+@UserTable+' SET PWD = '''+cast(@Pwd as nvarchar)+''' WHERE (USERNAME='''+@UserName+''')'
exec sp_executesql @sql GO
--调用
exec sw_UpdateUserPwd '列名','01111010110101101011' , '表名'
(
@UserName varchar (50),
@Pwd varbinary (50) ,
@UserTable varchar(50)
)
AS
SET NOCOUNT ONdeclare @sql nvarchar(4000)set @sql=N'UPDATE '+@UserTable+' SET PWD = @Pwd WHERE (USERNAME=@UserName)'
exec sp_executesql @sql , N'
@UserName varchar (50),
@Pwd varbinary (50) ',
@UserName, @Pwd
GO