Sql server SQL Server查询if-then逻辑

Sql server SQL Server查询if-then逻辑,sql-server,Sql Server,很抱歉提出了这个蹩脚的问题,但我只想做的是,如果数据库存在,则对其进行修改。T-Sql在if语句中没有then关键字。来源。只需删除单词“then”。T-Sql在if语句中没有then关键字。来源。只需删除单词“then”。Samsam,您可以尝试以下方法: IF (EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = 'db')) THEN ALTER DATABA

很抱歉提出了这个蹩脚的问题,但我只想做的是,如果数据库存在,则对其进行修改。

T-Sql在
if
语句中没有
then
关键字。来源。只需删除单词“then”。

T-Sql在
if
语句中没有
then
关键字。来源。只需删除单词“then”。

Samsam,您可以尝试以下方法:

IF (EXISTS (SELECT name 
            FROM master.dbo.sysdatabases 
            WHERE name = 'db'))
THEN
    ALTER DATABASE 'db' SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE; 
参考资料:


    • Samsam,你可以试试这个:

      IF (EXISTS (SELECT name 
                  FROM master.dbo.sysdatabases 
                  WHERE name = 'db'))
      THEN
          ALTER DATABASE 'db' SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE; 
      
      参考资料:


        • 另一种方法可以如下所示

          IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = 'db')
          BEGIN
              SELECT 'Database Name already Exist' AS Message
          END
          ELSE
          BEGIN
              ALTER DATABASE 'db' SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE; 
          END
          
          请注意,使用
          alterdatabase
          时,需要将db名称指定为literal,
          'db'
          将不起作用

          正确:
          alterdatabasedb-SET-RESTRICTED\u用户,立即回滚


          您将得到错误:
          alterdatabase'db'SET RESTRICTED\u USER并立即回滚

          另一种方法如下

          IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = 'db')
          BEGIN
              SELECT 'Database Name already Exist' AS Message
          END
          ELSE
          BEGIN
              ALTER DATABASE 'db' SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE; 
          END
          
          请注意,使用
          alterdatabase
          时,需要将db名称指定为literal,
          'db'
          将不起作用

          正确:
          alterdatabasedb-SET-RESTRICTED\u用户,立即回滚

          您将得到错误:
          alterdatabase'db'SET RESTRICTED\u USER并立即回滚