--1.查询  (注意:表,字段不能直接使用变量,需要在拼接sql中写完整)
--错误写法:    'select @a from @b'
--正确写法:    'select '+@a+' from '+@b

--避免并减少使用: EXEC (sql语句)

--推荐使用EXEC sp_executesql

DECLARE @Sql NVARCHAR(2000),
@Table VARCHAR(20)='DataList',
@ModelName VARCHAR(50)='A1',
@ModelSN VARCHAR(50)='B1',
@tj int 
set @sql =  'SELECT @tj=COUNT(1) FROM '+@Table+' WHERE ModelName=@ModelName and ModelSN=@ModelSN'
exec sp_executesql @sql, N'@tj int  output,@ModelName VARCHAR(50),@ModelSN VARCHAR(20)',
@tj OUTPUT ,@ModelName,@ModelSN
SELECT @tj


--2数据写入临时表
declare #tmp table (
  ID int,
   A varchar(50),
   B varchar(50)
)

---1111
--set @sql = 'select top 10 ID, A, B from '+quotename(@tablename)

---222

--set @sql = 'select top 10 ID, A, B from '+@tablename

print @sql


insert into #tmp
exec sp_executesql @sql
 
select * from #tmp

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐