sql语句(字段里面不能用变量吗)

来源:百度知道 编辑:UC知道 时间:2024/06/27 06:00:22
在sql查询分析器里面:
declare @Y varchar(50)
declare @M varchar(50)
declare @D varchar(50)
declare @hao varchar(50)
declare @UserID varchar(50)
declare @PPCardName varchar(50)

set @Y=year(getdate())
set @M=month(getdate())
set @D=day(getdate())
set @UserID='12'
set @hao='PP'+@Y+@M+@D+'0000'+@UserID
--print
select top 1 @PPCardName=CardName from PP_Card where CardSend=1

insert into PP_Account(UserID,AccountNumber,@PPCardName) values(@UserID,@hao,1)
提示我insert into PP_Account(UserID,AccountNumber,@PPCardName) values(@UserID,@hao,1) 这一句的@PPCardName错误,为什么,需要如何修改,难道字段里面不能用变量吗

列名不能直接变量

改为

declare @Y varchar(50)
declare @M varchar(50)
declare @D varchar(50)
declare @hao varchar(50)
declare @UserID varchar(50)
declare @PPCardName varchar(50)

set @Y=year(getdate())
set @M=month(getdate())
set @D=day(getdate())
set @UserID='12'
set @hao='PP'+@Y+@M+@D+'0000'+@UserID
--print
select top 1 @PPCardName=CardName from PP_Card where CardSend=1

exec('insert into PP_Account(UserID,AccountNumber,'+@PPCardName+') values('''+@UserID+''','''+@hao+''',1)')

sql语句不能直接使用变量。
存储过程中可以使用变量,调用存储过程时传递变量,由数据库将变量替换为实际值并执行得到结果。

插入时字段对应的是表中固定的某一列,应该不能用变量

可以,你可以使用预处理语句啊!

SQL语句中,插入项不能使用变量,