我只是想通过以下语句查询数据库中是否存在任何表:
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/