小编Bla*_*ter的帖子

如果表存在而不使用 sp_executesql 更新表中的行

我有一种情况,我需要对大量类似的数据库运行查询。他们中的大多数人都会有一个表,我需要更新其中的一些行,但其中一些人没有该表。

我想编写一个查询,该查询具有IF检查表是否存在EXEC sp_executesqlUPDATE语句,而无需使用该语句。有没有办法在 SQL Server 中做到这一点?

这是我今天正在做的一个例子:

IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[MyTableName]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
BEGIN
  -- this is what I want to be able to do but cannot
  UPDATE [dbo].[MyTableName] SET [SomeColumn] = NULL WHERE [SomeColumn] NOT IN (1, 2, 3)

  -- this is the only way I know to do this without an error
  EXEC sp_executesql N'UPDATE [dbo].[MyTableName] SET [SomeColumn] = NULL WHERE [SomeColumn] NOT …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2017

1
推荐指数
1
解决办法
151
查看次数

标签 统计

sql-server ×1

sql-server-2017 ×1

t-sql ×1