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