tma*_*ter 678 t-sql sql-server
表名是Scores
.
执行以下操作是否正确?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
Run Code Online (Sandbox Code Playgroud)
Mar*_*ith 1303
执行以下操作是否正确?
Run Code Online (Sandbox Code Playgroud)IF EXISTS(SELECT * FROM dbo.Scores) DROP TABLE dbo.Scores
号 这将删除该表仅当它包含任何行(如果该表不存在会引发错误).
相反,对于永久表,您可以使用
IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL
DROP TABLE dbo.Scores;
Run Code Online (Sandbox Code Playgroud)
或者,对于临时表,您可以使用
IF OBJECT_ID('tempdb.dbo.#T', 'U') IS NOT NULL
DROP TABLE #T;
Run Code Online (Sandbox Code Playgroud)
使用SQL Server 2016+有更好的方法DROP TABLE IF EXISTS …
.请参阅@Jovan的答案.
Jov*_*SFT 319
从SQL Server 2016,您可以使用
DROP TABLE IF EXISTS dbo.Scores
Run Code Online (Sandbox Code Playgroud)
参考:DROP IF EXISTS - SQL Server 2016中的新功能
它将很快出现在SQL Azure数据库中.
jve*_*zey 147
ANSI SQL /跨平台方式是使用INFORMATION_SCHEMA,它专门用于查询有关SQL数据库中对象的元数据.
if exists (select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'Scores' AND TABLE_SCHEMA = 'dbo')
drop table dbo.Scores;
Run Code Online (Sandbox Code Playgroud)
大多数现代RDBMS服务器至少提供基本的INFORMATION_SCHEMA支持,包括:MySQL,Postgres,Oracle,IBM DB2和Microsoft SQL Server 7.0(及更高版本).
Bio*_*o86 60
看过很多不能真正发挥作用的人.创建临时表时,必须从tempdb中删除它!
唯一有效的代码是:
IF OBJECT_ID('tempdb..#tempdbname') IS NOT NULL --Remove dbo here
DROP TABLE #tempdbname -- Remoeve "tempdb.dbo"
Run Code Online (Sandbox Code Playgroud)
sve*_*vit 27
要么:
if exists (select * from sys.objects where name = 'Scores' and type = 'u')
drop table Scores
Run Code Online (Sandbox Code Playgroud)
小智 27
有一个更简单的方法
DROP TABLE IF EXISTS table_name;
Run Code Online (Sandbox Code Playgroud)
小智 26
我希望这有帮助:
begin try drop table #tempTable end try
begin catch end catch
Run Code Online (Sandbox Code Playgroud)
Far*_*een 26
在SQL Server 2016(13.x)及更高版本中
DROP TABLE IF EXISTS dbo.Scores
Run Code Online (Sandbox Code Playgroud)
在早期版本中
IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL
DROP TABLE dbo.Scores;
Run Code Online (Sandbox Code Playgroud)
你是你的table type
Man*_*eld 20
我写了一个小UDF,如果它的参数是现存表的名称,则返回1,否则返回0:
CREATE FUNCTION [dbo].[Table_exists]
(
@TableName VARCHAR(200)
)
RETURNS BIT
AS
BEGIN
If Exists(select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = @TableName)
RETURN 1;
RETURN 0;
END
GO
Run Code Online (Sandbox Code Playgroud)
要删除表,User
如果它存在,请调用它:
IF [dbo].[Table_exists]('User') = 1 Drop table [User]
Run Code Online (Sandbox Code Playgroud)
简单的是:
IF OBJECT_ID(dbo.TableName, 'U') IS NOT NULL
DROP TABLE dbo.TableName
Run Code Online (Sandbox Code Playgroud)
dbo.TableName
你想要的桌子在哪里,'U'是type
你的table
.
小智 7
SQL Server 2016及以上版本最好、最简单的一个是 DROP TABLE IF EXISTS [TABLE NAME]
前任:
DROP TABLE IF EXISTS dbo.Scores
Run Code Online (Sandbox Code Playgroud)
如果假设上面的方法不起作用,那么您可以使用下面的方法
IF OBJECT_ID('dbo.Scores', 'u') IS NOT NULL
DROP TABLE dbo.Scores;
Run Code Online (Sandbox Code Playgroud)
IF EXISTS (SELECT NAME FROM SYS.OBJECTS WHERE object_id = OBJECT_ID(N'Scores') AND TYPE in (N'U'))
DROP TABLE Scores
GO
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1105109 次 |
最近记录: |