--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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)