解决方案 »
- SQLSERVER登录的问题--严重的
- 十万火急,请高手帮忙!!!!!!!!!!!!!!!!!!!!!!
- SELECT DISTINCT的简单问题
- 局域网异机数据备份作业的问题2
- 相似重复问题-----去重(2000分)
- 如何用SQL server中的导入数据功能导入文本文件?(急!)
- 加急!!!求各位帮忙看看这段存储过程错在哪儿?
- 我的机器名是CODE,在安装是安装实例名是sample,现在我单独打开查询分析时,在sql server一栏怎么填写?
- 2表之间相同字段赋值
- sql server2008 r2企业版安装问题
- 有一张表,存储了上百条数据,现在由于业务需求,存储另外的值,是新增字段存储适合还是存储在此表中用不到的字段中比较适合?
- 两表连接查询问题
use [master]
go
declare @dbname varchar(20),@sql1 varchar(100)
set @dbname='db201301'
set @sql1 = 'use '+@dbname
exec @sql1
go
declare @tname varchar(20),@num int,@sql2
set @tname='db201301'
set @sql2='select @a=COUNT(*) from '+@tname+'.dbo.type'
exec sp_executesql @sql2,N'@a int output',@num output
select @num
所以只能写成
exec(select count(*) from '+@dbname+'.dbo.type')
问题是我的语句不止有更新和查询,还有其他的变量
比如这样
declare @tname varchar(20),@num int
set @tname='db201301'
exec('select @num=COUNT(*) from '+@tname+'.dbo.type')
select @num
这种情况 @num根本得不到值,而且报错
declare @tname varchar(20),@num int
set @tname='db201301'
declare @sql Nvarchar(1000)=N'select @num=COUNT(*) from '+@tname+'.dbo.type';
Exec sp_executesql @sql,N'@num int output',@num output
select @num可以用这种方式
exec('use ['+@dbname+'] declare @num int select @num =count(*) from Table_1 select @num')
动态生成整个的执行sql
有没有变相实现use 数据库 的办法,真不想拼sql。
这样写的话,我觉的好恐怖啊,if里面可是一大堆语句块,都写在一个字符串里面..没准那里错了,找都找不到。