sp_executesql 为什么得不到正确的结果
//这是代码
在执行这段代码后为什么'索要回扣'这个字段的值还是NULL
DECLARE @QuesCount Numeric(18,0)
DECLARE @FieldName Varchar(50)
DECLARE @ProjTypeID UNIQUEIDENTIFIER
DECLARE @SqlStr NVARCHAR(500)
SET @ProjTypeID = '{9BD26AED-F54B-4942-B58D-7DCD5227CD01}'
set @FieldName = '索要回扣'
set @QuesCount = 100
SET @SqlStr = 'UPDATE TEMP_TEST SET @P1 = @P2 WHERE ID = @P3'
EXECUTE sp_executesql @SqlStr,N'@P1 VARCHAR(50), @P2 NUMERIC(18, 0), @P3 UNIQUEIDENTIFIER',
@P1 = @FieldName, @P2 = @QuesCount, @P3 = @ProjTypeID
select * from temp_test
//---------------------------这是表和数据---------------------------
CREATE TABLE [dbo].[TEMP_TEST] (
[ID] [uniqueidentifier] NULL ,
[索要回扣] [numeric](18, 0) NULL
) ON [PRIMARY]
insert into TEMP_TEST (ID) values('{9BD26AED-F54B-4942-B58D-7DCD5227CD01}')
在执行这段代码后为什么'索要回扣'这个字段的值还是NULL
DECLARE @QuesCount Numeric(18,0)
DECLARE @FieldName Varchar(50)
DECLARE @ProjTypeID UNIQUEIDENTIFIER
DECLARE @SqlStr NVARCHAR(500)
SET @ProjTypeID = '{9BD26AED-F54B-4942-B58D-7DCD5227CD01}'
set @FieldName = '索要回扣'
set @QuesCount = 100
SET @SqlStr = 'UPDATE TEMP_TEST SET @P1 = @P2 WHERE ID = @P3'
EXECUTE sp_executesql @SqlStr,N'@P1 VARCHAR(50), @P2 NUMERIC(18, 0), @P3 UNIQUEIDENTIFIER',
@P1 = @FieldName, @P2 = @QuesCount, @P3 = @ProjTypeID
select * from temp_test
//---------------------------这是表和数据---------------------------
CREATE TABLE [dbo].[TEMP_TEST] (
[ID] [uniqueidentifier] NULL ,
[索要回扣] [numeric](18, 0) NULL
) ON [PRIMARY]
insert into TEMP_TEST (ID) values('{9BD26AED-F54B-4942-B58D-7DCD5227CD01}')
...全文
相关推荐
SQL Server EXEC和sp_executesql的区别
#### 三、sp_executesql的使用`sp_executesql`是一种更加高级的方法,用于执行动态SQL。
系统存储过程,sp_executesql
EmployeeID INT = 123;DECLARE @SQL NVARCHAR(MAX) = N'SELECT * FROM Employees WHERE EmployeeID = @ID';EXEC sp_executesql
在sp_executesql中使用like字句的方法
**执行`sp_executesql`**: ```sql exec sp_executesql @SelectSql, N'@LikePar as varchar(32)', @LikePar = @
SQLServer:探讨EXEC与sp_executesql的区别详解
例如,在上面的例子中,如果使用 `sp_executesql`,可以直接将 `@OrderID` 作为参数传递,避免了字符串拼接,如:`sp_executesql N'SELECT * FROM ' +
SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别.doc
= 90SET @sql = 'SELECT @Nums=COUNT(1) FROM t_student WHERE Score >= @Score'EXEC SP_EXECUTESQL @sql,


应用实例
