第一我 select 只是为了确认这个记录是否在表中,
如果存在的话,就第二次 select 赋值。eg:if exists (select * from mytable where ui_name=@name)
begin
select @id=ui_id from mytable where ui_name=@name
return
end
else
return
这个,是否效率有问题?
谢谢回复。
如果存在的话,就第二次 select 赋值。eg:if exists (select * from mytable where ui_name=@name)
begin
select @id=ui_id from mytable where ui_name=@name
return
end
else
return
这个,是否效率有问题?
谢谢回复。
解决方案 »
- 今天来发现已经有三个小裤衩了,散分,哈哈
- 请教一个SQL语句,希望大家都来帮帮忙
- 怎样在VB中实现SQL语句的功能~
- SQL Server2000中如何将字段的某一部分用其他字复代替
- foxpro 中疑难问题(关于分页语句,not in),各位大侠救命啊
- 在成绩表中查找排名第十的人???
- MSSQL中的两个不同数据库的表如何触发?
- 簡單問題,請路過大蝦幫忙,謝謝!
- Ado可以用多线程么。我运行一个循环共三次每一次创建一个线程,线成的作用是使用ado的recordset对象给ms sql server 添加记录。在运行第一次的时候还行到第二次就说kernel32.dll出错.怎么回事呢。我期待专家的回答。
- 怎么在服务器端的程序中停掉服务器端的sql server服务?
- 好奇怪的问题.请高人指教
- 急!数据库文件被误删,只剩下日志文件,怎么恢复呢?
select @id=ui_id from mytable where ui_name=@name
当然也可以这样:
set @id=(select top 1 ui_id from mytable where ui_name=@name)
如果需要给默认值,可以:
set @id=isnull((select top 1 ui_id from mytable where ui_name=@name),'值')
set @id=isnull((select top 1 ui_id from mytable where ui_name=@name),'值')
--------
--------这个倒是不错。我测试下。谢谢。但我如果 直接用:
select @id=ui_id from mytable where ui_name=@name
如果记录不存在的话,会弹出个msgbx。这个是不能接受的。
所以,我才select两次。