DECLARE @SQL nvarchar(2000)
DECLARE @dt datetime
SET @dt=getdate()
set @SQL=N'select * FROM MyData where DATEDIFF(d,CreateDate,@dt)=0'
EXEC sp_executesql @SQL
存储过程中有类似的语句,为什么这样写一直报:
必须声明标量变量 "@dt"。
DECLARE @dt datetime
SET @dt=getdate()
set @SQL=N'select * FROM MyData where DATEDIFF(d,CreateDate,@dt)=0'
EXEC sp_executesql @SQL
存储过程中有类似的语句,为什么这样写一直报:
必须声明标量变量 "@dt"。
declare @num int, @sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls) --如何将exec执行结果放入变量中? declare @num int, @sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
DECLARE @dt datetime
SET @dt=getdate()
set @SQL=N'select * FROM MyData where DATEDIFF(d,CreateDate,'+rtrim(@dt)+')=0'
EXEC sp_executesql @SQL
DECLARE @dt datetime
SET @dt=getdate()
set @SQL=N'select * FROM MyData where DATEDIFF(d,CreateDate,@dt)=0'EXEC sp_executesql @SQL,N'@dt datetime',@dt
DECLARE @dt datetime
SET @dt=getdate()
set @SQL=N'select * FROM MyData where DATEDIFF(d,CreateDate,''' + convert(varchar(10),@dt,120) + ''')=0'
EXEC sp_executesql @SQL
高
DECLARE @SQL nvarchar(2000)
set @SQL=N'select * FROM MyData where DATEDIFF(d,CreateDate,getdate())=0'
EXEC sp_executesql @SQL