--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



