如何让Sql 执行完前面的语句再执行后面的语句
答案:1 悬赏:40 手机版
解决时间 2021-01-30 12:46
- 提问者网友:蓝莓格格巫
- 2021-01-29 20:14
如何让Sql 执行完前面的语句再执行后面的语句
最佳答案
- 五星知识达人网友:孤老序
- 2021-01-29 20:32
SQL 是先执行完前面的语句,再执行后面的语句啊,你的语句写得我很有疑问。
1. 当xiti(ti,da)插入第一条记录的时候,那么da只有一个,你已经赋给@d1了,怎么还能再拿到不等于@d1的@d2,@d3,@d4?他们肯定是null
2. 当xiti(ti,da)插入很多记录的时候,假设da是很多种的,那么你用select top 1 @d2=da from xiti where da not in(@d1) order by newid() ;的时候,没有指定ti,也就是会拿到其他ti的da,这是否合理?
3.select top 1 @d2=da from xiti where da not in(@d1) order by newid() ;,order by newid()怎么理解?追问1、对啊,是先执行前面的。可我想查询表好象要慢点,而后面的语句并非要等前面执行完才开始。比如才调用打开文件,马上关闭并删除文件,就会提示说什么文件在使用中。只有象窗体打开那样使用模式打开,非窗体操作完后才开始执行后面的语句。我想SQL中应该有类似的做法,想知道怎么做?
2、我就是要拿其它的内容呀,目的是要做一个一对、三错的选择题样的表
3、order by newid() 是说生成一个新的随机系列的表。能帮上忙吗?!追答2,和3我是理解了,你这么做没有问题。
对于第一点,首先,你说在执行慢的查询的同时做别的事情,这种改善性能的方法在程序里面叫多线程,数据库操作因为涉及到事务,所以并不支持,你可以考虑从别的方面考虑改善性能。比如用index来筛选。
其次,你不能凭直觉就说查询很慢,这个是要验证的,否则你把精力花在并不存在的问题上,就不值得了。追问从结果就验证了,如果前面执行完了才执行后面,就不可能还是空了!我记住有个叫显示提交执行的东西叫 go ,可使用了就说语法错误。至于你说多线程是曲解我的意思了。我不希望它这们做,这应该是Sqlserver 提高效率自己这个做的,对了sqlserver里有没有类型 sleep 的命令?追答我已经说了
“当xiti(ti,da)插入第一条记录的时候,那么da只有一个,你已经赋给@d1了,怎么还能再拿到不等于@d1的@d2,@d3,@d4?他们肯定是null”
实际上当xiti表里面的数据少于3条的时候,肯定会有一个答案是null的
你说得sleep函数:waitfor delay '00:00:05',睡5s。但是这个函数是不会改变结果的,sql不会先执行后面的语句,不信你试试看
你可以hi我
1. 当xiti(ti,da)插入第一条记录的时候,那么da只有一个,你已经赋给@d1了,怎么还能再拿到不等于@d1的@d2,@d3,@d4?他们肯定是null
2. 当xiti(ti,da)插入很多记录的时候,假设da是很多种的,那么你用select top 1 @d2=da from xiti where da not in(@d1) order by newid() ;的时候,没有指定ti,也就是会拿到其他ti的da,这是否合理?
3.select top 1 @d2=da from xiti where da not in(@d1) order by newid() ;,order by newid()怎么理解?追问1、对啊,是先执行前面的。可我想查询表好象要慢点,而后面的语句并非要等前面执行完才开始。比如才调用打开文件,马上关闭并删除文件,就会提示说什么文件在使用中。只有象窗体打开那样使用模式打开,非窗体操作完后才开始执行后面的语句。我想SQL中应该有类似的做法,想知道怎么做?
2、我就是要拿其它的内容呀,目的是要做一个一对、三错的选择题样的表
3、order by newid() 是说生成一个新的随机系列的表。能帮上忙吗?!追答2,和3我是理解了,你这么做没有问题。
对于第一点,首先,你说在执行慢的查询的同时做别的事情,这种改善性能的方法在程序里面叫多线程,数据库操作因为涉及到事务,所以并不支持,你可以考虑从别的方面考虑改善性能。比如用index来筛选。
其次,你不能凭直觉就说查询很慢,这个是要验证的,否则你把精力花在并不存在的问题上,就不值得了。追问从结果就验证了,如果前面执行完了才执行后面,就不可能还是空了!我记住有个叫显示提交执行的东西叫 go ,可使用了就说语法错误。至于你说多线程是曲解我的意思了。我不希望它这们做,这应该是Sqlserver 提高效率自己这个做的,对了sqlserver里有没有类型 sleep 的命令?追答我已经说了
“当xiti(ti,da)插入第一条记录的时候,那么da只有一个,你已经赋给@d1了,怎么还能再拿到不等于@d1的@d2,@d3,@d4?他们肯定是null”
实际上当xiti表里面的数据少于3条的时候,肯定会有一个答案是null的
你说得sleep函数:waitfor delay '00:00:05',睡5s。但是这个函数是不会改变结果的,sql不会先执行后面的语句,不信你试试看
你可以hi我
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯