如题所述,exec支持多条命令的执行吗?
declare @str1 varchar(8000),@str2 varchar(8000)
set @str1 = 'alter table [tablename] add .......'
set @str2 = 'insert into [tablename] (.....) select .... from [TableSource] '
exec(@str1) --第一次使用exec
exec(@str2) --第二次使用exec除了上述的两次使用exec之外,能不能只用一次exec就把上面的两条语句都执行
就像exec(@str1 + @str2),但是这样写是不行的 ,如果说有方法可以一次性执行@str1和@str2,那么要怎么写才正确
declare @str1 varchar(8000),@str2 varchar(8000)
set @str1 = 'alter table [tablename] add .......'
set @str2 = 'insert into [tablename] (.....) select .... from [TableSource] '
exec(@str1) --第一次使用exec
exec(@str2) --第二次使用exec除了上述的两次使用exec之外,能不能只用一次exec就把上面的两条语句都执行
就像exec(@str1 + @str2),但是这样写是不行的 ,如果说有方法可以一次性执行@str1和@str2,那么要怎么写才正确
解决方案 »
- 如何做到只更新最近的一次记录 ?
- 把初始日期转换小时数该怎么办
- An INSERT EXEC statement cannot be nested.在线等
- mdf数据文件损坏(复制时出循环冗余错误),日志文件完好,如何恢复数据库
- Sqlite 数据库表连接更新(update)
- 如何让select结果包含字段名
- 写了一个多小时代码。写不下去了。请大家帮个忙想个办法!
- 寻求一个比对解决方案,谢谢大家!
- 提示“将 expression 转换为数据类型 float 时发生算术溢出错误。”请帮忙看看。
- 怎么将数据表中某字段编号(100分),在线等待。。。
- 帮我写个查询条件
- 关于搜索值的问题,请指点一下!!!
declare @str1 varchar(8000),@str2 varchar(8000)
set @str1 = 'alter table [tablename] add .......'
set @str2 = 'insert into [tablename] (.....) select .... from [TableSource] '
exec(@str1+';'+@str2)
--好像可以这样,或者在这里加 set @str1='.....;' 不知道行不行
set @str1 = 'alter table [tablename] add .......;'
set @str2 = 'insert into [tablename] (.....) select .... from [TableSource] '
exec(@str1+@str2)这样可以的 分号放在第一条语句后面
set @str1 = 'alter table [tablename] add .......; go'
set @str2 = 'insert into [tablename] (.....) select .... from [TableSource] '
exec(@str1+@str2)
楼主的SQL什么版本啊?华夏小卒的方法可以的啊!
declare @s1 varchar(600),@s2 varchar(600)
set @s1 = 'select 123'
set @s2 = 'select ''sss'''
execute(@s1 + @s2)但是有alter 的就是不行
因为,在执行insert时,alter还没有执行
DECLARE @STR NVARCHAR(4000)
SET @STR='SELECT * FROM SYSOBJECTS'
DECLARE @STR1 NVARCHAR(4000)
SET @STR1='SELECT * FROM SYSOBJECTS'
DECLARE @STR2 NVARCHAR(4000)
SET @STR2=@STR+';'+@STR1
PRINT @STR2
EXEC(@STR2)
我好像没给你这么说吧,
如果都执行insert了,怎么会alter没执行呢?
动态语句,运行过程中进行编译
alter ..
insert
在一个批中, 当编译进行对象检查时,因为alter 还未执行,此时insert语句通不过检查。这是出错的原因。
不用动态语句也是一样的道理