exec有两种用法,一种是调用存储过程,另一种是执行sql语句,用法如下:
exec dbo.GetCustomer 'Create table #Temp'
exec ('Create table #Temp')
用动态语句创建临时表有一个问题,就是如果你不在它的作用域内就找不到。解决方法是把要调用临时表的语句都放在exec内,如:
exec ('Create table #Temp_ie_bar(guid varchar(500)) select * from #Temp_ie_bar')
遇到的第三个sql的问题是sql语句中嵌入整型变量,这个如果直接嵌入是不可以的,可以提前转为varchar类型就可以了。