sql-server - 一个非常简单的T-SQL语句语法错误

标签 sql-server syntax-error

我只是想通过以下语句查询数据库中是否存在任何表:

IF EXISTS(SELECT 1 FROM db_name.sys.tables WHERE name = 'table_name')

我收到语法错误

Incorrect syntax near ')'



怎么了?如何检查我的数据库中是否存在表。

最佳答案

如果条件匹配,SQL中的IF condition需要执行一个语句或块(即“then”语句或块),并且可以选择添加“else”语句/块,如下所示:

IF EXISTS(SELECT 1 FROM mydbname.sys.tables WHERE name = 'MyTable')
    PRINT 'FOUND';
ELSE
    PRINT 'NOT FOUND';

如果您需要在'then'或'else'中执行多个语句,则将它们包装在以BEGIN/END分隔的块中。

请注意,如果您来自FP背景,则IF语句是旧式副作用分支样式,而不是条件/模式匹配样式,即您不能这样做
DECLARE @isFound BIT;
SET @isFound = IF EXISTS(SELECT 1 FROM mydbname.sys.tables WHERE name ='MyTable')
-- ** syntax error

关于sql-server - 一个非常简单的T-SQL语句语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48135012/

相关文章:

c# - 为什么我可以插入 MaxDate 而不能插入 MinDate

sql - 从表 SQL 中查找 Maximum(table.column1,table.column2,table.column3,...) 为 'MaximumValue'

mysql - 创建删除触发器时的MySQL语法错误

python - 使用ast.literal_eval()清理数据时出现语法错误

python - 如何解决 Python 中的 SyntaxError

c# - asp.net c# 检查错误

sql - 更新语句错误:子查询返回了多个值

sql - 我需要在 T-SQL 数据透视查询中更改哪些内容才能实现此特定输出?

sql - 使用Mono.Data.SqliteClient库的SQLite语法

c# - 如何处理 Access INSERT 语句和 .NET DataGridView 控件中的语法错误?