Sql server 一个非常简单的T-SQL语句语法错误
我只是试图通过以下语句查询数据库中是否存在任何表:Sql server 一个非常简单的T-SQL语句语法错误,sql-server,syntax-error,Sql Server,Syntax Error,我只是试图通过以下语句查询数据库中是否存在任何表: IF EXISTS(SELECT 1 FROM db_name.sys.tables WHERE name = 'table_name') 我得到一个语法错误 “')附近的语法不正确 怎么了?如何检查我的数据库中是否存在表 如果条件匹配,则in SQL需要执行语句或块(即“then”语句或块),并且可以选择添加“else”语句/块,如下所示: IF EXISTS(SELECT 1 FROM mydbname.sys.tables WHERE
IF EXISTS(SELECT 1 FROM db_name.sys.tables WHERE name = 'table_name')
我得到一个语法错误
“')附近的语法不正确
怎么了?如何检查我的数据库中是否存在表 如果条件匹配,则in SQL需要执行语句或块(即“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
您应该选择一些输出来检查表是否存在。例如:
IF EXISTS(SELECT 1 FROM sys.tables WHERE name = 'table1') Select 1 ELSE Select 0
如果table1
存在或不存在,则返回0
或1
其他方式:
SELECT 1 WHERE EXISTS(SELECT 1 FROM sys.tables WHERE name = 'table1')
如果table1
存在,或者没有记录,Whcih将返回1
注意:您也可以省略存在的部分
并使用如下内容:
SELECT 1 FROM sys.tables WHERE name = 'table1'
它将返回
1
,或者根据table1
的存在不返回任何记录。那是什么意思?如果有表退出或退出,请给出查询表的完整语法not@StuartLC则
用于案例
。T-SQL的if语法是if[BEGIN…END][ELSE][BEGIN…END]
@masiboo我们需要一些更广泛的上下文。您发布的代码很好。@ZoharPeled我的意思是OP在发生错误时不会做任何事情match@StuartLC是的,你的回答涵盖了这一点:-)