你的需求,其实是可以通过sql的goto语法进行实现的,而不是绝对的不可以,只是在使用goto之前需要首先定义一下变量。这个不仅仅是sql语言需要这样,任何语言都需要在使用变量之前提前声明。这样就可以将你需要执行的语句显示在前面了。具体方法如下:
declare @i varchar(500), @sql varchar(5000), @count int
set @count = 0 --定义一个循环变量,防止goto的语句死循环,你可以去了这句和后面的while试试你就知道了
Branch_One: --定义一个标签
exec (@sql) --goto中的语句,如果有多个语句,请使用begin...end
set @i = 'a' ---表名
set @sql='select top 10 * from '+ @i
set @count = @count + 1
while @count <= 1 goto Branch_One --使用goto语句跳转到Branch_One进行执行。
具体关于goto的语法和应用请参见:http://msdn.microsoft.com/zh-cn/library/ms180188.aspx
不行,语句是按顺序执行的,必须按需要先定义,后执行