2 回答

TA貢獻1818條經驗 獲得超3個贊
exists的用法如下:
1、判斷數據庫是否存在
if exists (select*fromsysdatabaseswherename= '數據庫名')
dropdatabase[數據庫名]
2、判斷表是否存在
if not exists (select * from sysobjects where [name] = '表名' and xtype='U')
begin
--這里創(chuàng)建表
end
3、判斷存儲過程是否存在
if exists (select*fromsysobjectswhereid = object_id(N'[存儲過程名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
dropprocedure[存儲過程名]
4、判斷視圖是否存在
(1)SQL Server 2000
IF EXISTS (SELECT*FROMsysviewsWHEREobject_id = '[dbo].[視圖名]'
(2)SQL Server 2005
IF EXISTS (SELECT*FROMsys.viewsWHEREobject_id = '[dbo].[視圖名]'
5、判斷函數是否存在
if exists (select*fromdbo.sysobjectswhereid = object_id(N'[dbo].[函數名]') and xtype in (N'FN', N'IF', N'TF'))
dropfunction[dbo].[函數名]
擴展資料
SQL的提升
1、復制表(只復制結構,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1
法二:select top 0 * into b from a
2、拷貝表(拷貝數據,源表名:a 目標表名:b) (Access可用)
insert into b(x, y, z) select d,e,f from a;
3、跨數據庫之間表的拷貝(具體數據使用絕對路徑) (Access可用)
insert into b(x, y, z) select d,e,f from a in ‘具體數據庫’ where 條件
例子:。.from b in '"&Server.MapPath("."&"\data.mdb" &"' where..
4、子查詢(表名1:a 表名2:b)
select a,b,c from a where a IN (select d from b 或者: select a,b,c from a where a IN (1,2,3)
5、顯示文章最后時間
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
- 2 回答
- 0 關注
- 520 瀏覽
添加回答
舉報