Перевірте, чи існує таблиця в SQL Server


1143

Я хотів би, щоб це була остаточною дискусією щодо того, як перевірити, чи існує таблиця в SQL Server 2000/2005 за допомогою SQL-заяв.

Коли Google отримує відповідь, ви отримуєте так багато різних відповідей. Чи існує офіційний / зворотний і прямий сумісний спосіб це зробити?

Ось два можливі способи зробити це. Який із двох - це стандартний / найкращий спосіб зробити це?

Перший спосіб:

IF EXISTS (SELECT 1 
           FROM INFORMATION_SCHEMA.TABLES 
           WHERE TABLE_TYPE='BASE TABLE' 
           AND TABLE_NAME='mytablename') 
   SELECT 1 AS res ELSE SELECT 0 AS res;

Другий спосіб:

IF OBJECT_ID (N'mytablename', N'U') IS NOT NULL 
   SELECT 1 AS res ELSE SELECT 0 AS res;

MySQL забезпечує просте

SHOW TABLES LIKE '%tablename%'; 

заява. Шукаю щось подібне.


1
Чому найкраще використовувати INFORMATION_SCHEMA.TABLES замість sys.tables, а потім відфільтрувати з імені будь-яке, можливо, додати перевірку значення type_desc?
DanteTheSmith

Відповіді:


1332

Для таких запитів завжди найкраще використовувати INFORMATION_SCHEMAпредставлення даних. Ці представлення (в основному) стандартні для багатьох різних баз даних і рідко змінюються від версії до версії.

Щоб перевірити, чи існує таблиця, використовуйте:

IF (EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_SCHEMA = 'TheSchema' 
                 AND  TABLE_NAME = 'TheTable'))
BEGIN
    --Do Stuff
END

12
Чудово працює! Однак у T-SQL (у відповідь на оригінальний плакат) це TABLE_SCHEMA, а не SCHEMA_NAME. Дякую за пораду.
Микола П’ясецький

10
Враховуючи, що одне ім'я об'єкта (тобто без схеми) не гарантується унікальним, не існує 100% відмовного способу зробити це. Якщо ви працюєте з БД, яка не має конфліктів імен в схемах, просто пропустіть "TABLE_SCHEMA = 'TheSchema" "буде добре.
akmad

26
Щоб перевірити наявність тимчасової таблиці, нам потрібно запитати базу даних tempdb і використовувати оператор LIKE для назви таблиціSELECT * FROM tempdb.INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'TheSchema' AND TABLE_NAME LIKE '#TheTable%'
Pierre-Alain Vigeant

4
Відповідь нижче, що використовує функцію OBJECT_ID, працює правильно щодо таблиць тимчасових з’єднань - stackoverflow.com/a/2155299/16147
Rich Rousseau

4
@akmad Компілятор запитів SQL перевірить таблицю перед запуском запиту і не вдасться навіть перед запуском.
Марк К

278

Також зауважте, що якщо з будь-якої причини вам потрібно перевірити тимчасову таблицю, ви можете це зробити:

if OBJECT_ID('tempdb..#test') is not null
 --- temp table exists

10
Використовуючи цей метод, схоже, поважає характер тимчасових таблиць за з'єднання. Раніше опублікований запит INFORMATION_SCHEMA поверне рядки незалежно від з'єднання, яке створило таблицю.
Багатий Руссо

238

Ми завжди використовуємо OBJECT_IDстиль стільки, скільки я пам’ятаю

IF OBJECT_ID('*objectName*', 'U') IS NOT NULL 

16
Я вважаю, що це було б швидко, хоча і не дуже портативно. Перегляди інформаційних схем гарантовано існують у будь-якій DBRMS, яка підтримує стандарт. Крім того, звичайний OBJECT_ID не гарантує таблицю об'єкта.
Джо Пінеда

9
Дякую Джо, мені було цікаво, чому ти будеш використовувати OBJECT_ID проти INFORMATION_SCHEMA.TABLES проти sys.tables. Вказуючи, що INFORMATION_SCHEMA є частиною стандарту, в значній мірі відповідає на це питання. До речі, це смішно, один з наших експертів Бази даних, що я збирався задати це питання, має те саме прізвище, що і ви, має бути гарним прізвищем для баз даних.
Апейрон

24
@JoePineda: Тоді ви використовуєте OBJECT_ID('TableName', 'U')для гарантії, що об'єктом є таблиця.
Аллон Гуралнек

1
@AllonGuralnek, тож замість того, щоб дотримуватися простого та портативного стандарту, додати додатковий шматок загадкової інформації?
визначається

22
@DustinFineout: Питання було позначено tsql , тому портативність застосовується не так сильно. Взагалі я стикався з дуже мало справді портативних кодових баз, і якщо цінується лаконічність, то вона, безумовно, перемагає написання цього IF EXISTSзапиту з прийнятої відповіді знову і знову. Плюс до того, що поки ви не прочитаєте документацію, особливо в T-SQL (або будь-якому іншому варіанті), все криптовалютно.
Аллон Гуралнек

132

Перегляньте нижче підходи,

Підхід 1: Використання подання INFORMATION_SCHEMA.TABLES

Ми можемо написати запит, як показано нижче, щоб перевірити, чи існує таблиця клієнтів у поточній базі даних.

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'Customers')
BEGIN
    PRINT 'Table Exists'
END

Підхід 2: Використання функції OBJECT_ID ()

Ми можемо використовувати функцію OBJECT_ID (), як показано нижче, щоб перевірити, чи існує таблиця клієнтів у поточній базі даних.

IF OBJECT_ID(N'dbo.Customers', N'U') IS NOT NULL
BEGIN
    PRINT 'Table Exists'
END

Підхід 3: Використання sys.Objects Catalogue View

Ми можемо використовувати представлення каталогу Sys.Objects для перевірки існування Таблиці, як показано нижче:

IF EXISTS(SELECT 1 FROM sys.Objects WHERE  Object_id = OBJECT_ID(N'dbo.Customers') AND Type = N'U')
BEGIN
   PRINT 'Table Exists'
END

Підхід 4: Використання системного перегляду sys.Tables

Ми можемо використовувати подання каталогу Sys.Tables, щоб перевірити існування таблиці, як показано нижче:

 IF EXISTS(SELECT 1 FROM sys.Tables WHERE  Name = N'Customers' AND Type = N'U')
 BEGIN
      PRINT 'Table Exists'
 END

Підхід 5: Уникайте використання системної таблиці sys.sysobjects

Ми повинні уникати прямого використання системної таблиці sys.sysobjects, у деяких майбутніх версіях сервера Sql прямий доступ до неї буде припинено. Відповідно до посилання Microsoft BOL, Microsoft пропонує використовувати каталог переглядів sys.objects / sys.tables замість системної таблиці sys.sysobjects.

  IF EXISTS(SELECT name FROM sys.sysobjects WHERE Name = N'Customers' AND xtype = N'U')
  BEGIN
     PRINT 'Table Exists'
  END

посилається з: http://sqlhints.com/2014/04/13/how-to-check-if-a-table-exists-in-sql-server/


37

Шукаєте таблицю в іншій базі даних:

if exists (select * from MyOtherDatabase.sys.tables where name = 'MyTable')
    print 'Exists'

26

Просто хотілося згадати одну ситуацію, коли, мабуть, було б трохи простіше використовувати OBJECT_IDметод. Ці INFORMATION_SCHEMAвиди є об'єктами під кожною database-

Перегляди інформаційної схеми визначені в спеціальній схемі під назвою INFORMATION_SCHEMA. Ця схема міститься у кожній базі даних.

https://msdn.microsoft.com/en-us/library/ms186778.aspx

Тому всі таблиці, до яких ви отримуєте доступ

IF EXISTS (SELECT 1 
           FROM [database].INFORMATION_SCHEMA.TABLES 
           WHERE TABLE_TYPE='BASE TABLE' 
           AND TABLE_NAME='mytablename') 
   SELECT 1 AS res ELSE SELECT 0 AS res;

буде відображати лише те, що в [database]. Якщо ви хочете перевірити, чи існують таблиці в іншій базі даних, не динамічно змінюючи [database]кожен раз, OBJECT_IDце дозволить зробити це поза коробкою. Ex-

IF OBJECT_ID (N'db1.schema.table1', N'U') IS NOT NULL 
   SELECT 1 AS res ELSE SELECT 0 AS res;

працює так само добре

IF OBJECT_ID (N'db2.schema.table1', N'U') IS NOT NULL 
   SELECT 1 AS res ELSE SELECT 0 AS res;

SQL SERVER 2016 Редагувати :

Починаючи з 2016 року, Microsoft спростила можливість перевіряти наявність неіснуючих об'єктів до випадання, додаючи if existsключові слова до dropоператорів. Наприклад,

drop table if exists mytablename

зробить те саме, що і OBJECT_ID/ INFORMATION_SCHEMAобгортки, в 1 рядку коду.

https://blogs.msdn.microsoft.com/sqlserverstorageengine/2015/11/03/drop-if-exists-new-thing-in-sql-server-2016/



13

Використання Інформаційної схеми - це стандартний спосіб SQL, тому її слід використовувати у всіх базах даних, які її підтримують.


12
Це повинен був бути коментарем.
підкреслюй_2

3
Ця відповідь потребує вдосконалення.
rory.ap

11
IF EXISTS 
(
    SELECT   * 
    FROM     sys.objects 
    WHERE    object_id = OBJECT_ID(N'[dbo].[Mapping_APCToFANavigator]') 
             AND 
             type in (N'U')
)
BEGIN

    -- Do whatever you need to here.

END

Тут у наведеному вище коді назва таблиці Mapping_APCToFANavigator.


2
Якщо ви розміщуєте код, XML або зразки даних, будь ласка, виділіть ці рядки в текстовому редакторі та натисніть кнопку "зразки коду" ( { }) на панелі інструментів редактора, щоб гарненько відформатувати та підкреслити синтаксис!
marc_s

1
Зауважте, що доступ до системних таблиць може бути припинений у майбутній версії SQL Server. Замість цього використовуйте представлення схем.
Олів'є Якот-Дескомбс

10

Якщо вам потрібно працювати над різними базами даних:

DECLARE @Catalog VARCHAR(255)
SET @Catalog = 'MyDatabase'

DECLARE @Schema VARCHAR(255)
SET @Schema = 'dbo'

DECLARE @Table VARCHAR(255)
SET @Table = 'MyTable'

IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES   
    WHERE TABLE_CATALOG = @Catalog 
      AND TABLE_SCHEMA = @Schema 
      AND TABLE_NAME = @Table))
BEGIN
   --do stuff
END

1
Ти впевнений? Інформаційна схема у вікні 2005 року повертає лише поточний каталог.
quillbreaker

8

Я знаю, що це старе питання, але я знайшов таку можливість, якщо ви плануєте часто телефонувати.

create procedure Table_Exists
@tbl varchar(50)
as
return (select count(*) from sysobjects where type = 'U' and name = @tbl)
go

9
-1. Безглуздо мати процедуру для цього, оскільки це стільки коду, щоб зателефонувати та споживати повернення, як просто зробити вибір. Якщо використовувати sysnameтип даних не varchar(50). Не слід використовувати застарілий sysobjectsвигляд і не враховує схеми.
Мартін Сміт

6

Ви можете використовувати код нижче

IF (OBJECT_ID('TableName') IS NOT NULL )
BEGIN
  PRINT 'Table Exists'
END
ELSE
BEGIN 
  PRINT 'Table NOT Exists'
END

Або

IF (EXISTS (SELECT * FROM sys.tables WHERE [name] = 'TableName'))
BEGIN
  PRINT 'Table Exists'
END
ELSE
BEGIN 
  PRINT 'Table NOT Exists'
END

5

Просто додайте сюди, на користь розробників та співпрацівників DBA

сценарій, який отримує @Tablename в якості параметра

(яка може містити або не матиме ім'я схеми) і повертає інформацію нижче, якщо схема schema.table існує:

the_name                object_id   the_schema  the_table       the_type
[Facts].[FactBackOrder] 758293761   Facts       FactBackOrder   Table

Я створив цей сценарій для використання в інших сценаріях кожен раз, коли мені потрібно перевірити, чи існує таблиця чи представлення, і коли він є, отримати його object_id, який буде використаний для інших цілей.

Він викликає помилку, коли ви передали порожню рядок, неправильну назву схеми або неправильну назву таблиці.

це може бути всередині процедури і повернути -1, наприклад.

Як приклад, я маю таблицю під назвою "Facts.FactBackOrder" в одній із моїх баз даних сховища.

Ось як я цього досяг:

PRINT 'THE SERVER IS ' + @@SERVERNAME
--select db_name()
PRINT 'THE DATABASE IS ' + db_NAME() 
PRINT ''
GO

SET NOCOUNT ON
GO

--===================================================================================
-- @TableName is the parameter
-- the object we want to deal with (it might be an indexed view or a table)
-- the schema might or might not be specified
-- when not specified it is DBO
--===================================================================================

DECLARE @TableName SYSNAME

SELECT @TableName = 'Facts.FactBackOrder'
--===================================================================================
--===================================================================================
DECLARE @Schema SYSNAME
DECLARE @I INT
DECLARE @Z INT 

SELECT @TableName = LTRIM(RTRIM(@TableName))
SELECT @Z = LEN(@TableName)

IF (@Z = 0) BEGIN

            RAISERROR('Invalid @Tablename passed.',16,1)

END 

SELECT @I = CHARINDEX('.',@TableName )
--SELECT @TableName ,@I

IF @I > 0 BEGIN

        --===================================================================================
        -- a schema and table name have been passed
        -- example Facts.FactBackOrder 
        -- @Schema = Fact
        -- @TableName = FactBackOrder
        --===================================================================================

   SELECT @Schema    = SUBSTRING(@TABLENAME,1,@I-1)
   SELECT @TableName = SUBSTRING(@TABLENAME,@I+1,@Z-@I)



END
ELSE BEGIN

        --===================================================================================
        -- just a table name have been passed
        -- so the schema will be dbo
        -- example Orders
        -- @Schema = dbo
        -- @TableName = Orders
        --===================================================================================

   SELECT @Schema    = 'DBO'     


END

        --===================================================================================
        -- Check whether the @SchemaName is valid in the current database
        --===================================================================================

IF NOT EXISTS ( SELECT * FROM INFORMATION_SCHEMA.SCHEMATA K WHERE K.[SCHEMA_NAME] = @Schema ) BEGIN

            RAISERROR('Invalid Schema Name.',16,1)

END 

--SELECT @Schema  as [@Schema]
--      ,@TableName as [@TableName]


DECLARE @R1 TABLE (

   THE_NAME SYSNAME
  ,THE_SCHEMA SYSNAME
  ,THE_TABLE SYSNAME
  ,OBJECT_ID INT
  ,THE_TYPE SYSNAME
  ,PRIMARY KEY CLUSTERED (THE_SCHEMA,THE_NAME)

)

;WITH RADHE_01 AS (
SELECT QUOTENAME(SCHEMA_NAME(O.schema_id)) + '.' + QUOTENAME(O.NAME) AS [the_name]
      ,the_schema=SCHEMA_NAME(O.schema_id)
      ,the_table=O.NAME
      ,object_id =o.object_id 
      ,[the_type]= CASE WHEN O.TYPE = 'U' THEN 'Table' ELSE 'View' END 
from sys.objects O
where O.is_ms_shipped = 0
AND O.TYPE IN ('U','V')
)
INSERT INTO @R1 (
   THE_NAME 
  ,THE_SCHEMA 
  ,THE_TABLE 
  ,OBJECT_ID
  ,THE_TYPE 
)
SELECT  the_name
       ,the_schema
       ,the_table
       ,object_id
       ,the_type
FROM RADHE_01
WHERE the_schema = @Schema 
  AND the_table  = @TableName

IF (@@ROWCOUNT = 0) BEGIN 

             RAISERROR('Invalid Table Name.',16,1)

END 
ELSE BEGIN

    SELECT     THE_NAME 
              ,THE_SCHEMA 
              ,THE_TABLE 
              ,OBJECT_ID
              ,THE_TYPE 

    FROM @R1

END 

У вашому сценарії багато припущень. Наприклад, я міг легко створити таблицю з назвою, dbo.[hello.world ]і сценарій не знайшов би її з кількох причин. Однак, навряд чи хтось захоче створити таку таблицю, але все ж. У будь-якому випадку, ваш THE_NAMEстовпець визначається як sysname', yet you try to squeeze 2 стовпці sysname` та крапка ( .), всі оточені у квадратних дужках ...
деробі

@deroby Я погоджуюся, що sysname - це не найкращий тип даних, який використовується, але сценарій працює давно без будь-яких помилок, я витратив би час на нього, лише якщо знайду розумну ситуацію, коли це не працює. Ще краще, ви берете цей код, вдосконалюєте його і розміщуєте тут як відповідь, і я перевірю його, якщо він працює, я схвалюю вашу відповідь.
Марчелло Міореллі

5

У SQL Server 2000 можна спробувати:

IF EXISTS(SELECT 1 FROM sysobjects WHERE type = 'U' and name = 'MYTABLENAME')
BEGIN
   SELECT 1 AS 'res' 
END

3
IF EXISTS 
(
    SELECT  * 

    FROM    INFORMATION_SCHEMA.TABLES 

    WHERE   TABLE_SCHEMA = 'PutSchemaHere'     
            AND  
            TABLE_NAME   = 'PutTableNameHere'
)

2

Щось важливо знати для тих, хто ще не знайшов свого рішення: SQL-сервер! = MYSQL . Якщо ви хочете зробити це за допомогою MYSQL , це досить просто

    $sql = "SELECT 1 FROM `db_name`.`table_name` LIMIT 1;";
    $result = mysql_query($sql);
    if( $result == false )
        echo "table DOES NOT EXIST";
    else
        echo "table exists";

Опублікуйте це тут, оскільки це найкращий хіт в Google.


4
-1 тому, що ОП саме запитує рішення проблеми SQL Server, а не MySQL. Він писав про MySQL, тому що знав рішення для цієї СУБД і хотів такого ж результату на SQL Server. Також ваша відповідь - навіть не запит MySQL, а PHP-код, який працює з MySQL.
marack550

1
@ morack550, я згоден з Blauhirn. Він правий. Це найкраще звернення в Google, щоб дізнатися, чи існує таблиця в SQL. У нього наміри хороші, а його інформація корисна. +1
Марк

Прикро, що Microsoft має звичку намагатися вживати / розширювати / гасити загальні стандарти та шаблони, такі як SQL. Я дуже хотів би, щоб вони надали своїй реалізації SQL-сервера належне ім'я, щоб люди могли однозначно ідентифікувати посилання, характерні для їх продукту.
psaxton


2

Ви можете скористатися цим:

     IF OBJECT_ID (N'dbo.T', N'U') IS NOT NULL 
        BEGIN 
            print 'deleted table';
            drop table t 
        END
     else 
        begin 
            print 'table not found' 
        end

 Create table t (id int identity(1,1) not null, name varchar(30) not null, lastname varchar(25) null)
 insert into t( name, lastname) values('john','doe');
 insert into t( name, lastname) values('rose',NULL);

 Select * from t
1   john    doe
2   rose    NULL

 -- clean
 drop table t


1

- створити процедуру, щоб перевірити, чи існує таблиця


DELIMITER $$

DROP PROCEDURE IF EXISTS `checkIfTableExists`;

CREATE PROCEDURE checkIfTableExists(
    IN databaseName CHAR(255),
    IN tableName CHAR(255),
    OUT boolExistsOrNot CHAR(40)
)

  BEGIN
      SELECT count(*) INTO boolExistsOrNot FROM information_schema.TABLES
      WHERE (TABLE_SCHEMA = databaseName)
      AND (TABLE_NAME = tableName);
  END $$

DELIMITER ;

- - як користуватися: перевірити, чи існують міграції таблиць


 CALL checkIfTableExists('muDbName', 'migrations', @output);

1
IF EXISTS (
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE 
TABLE_CATALOG = 'Database Name' and
TABLE_NAME = 'Table Name' and 
TABLE_SCHEMA = 'Schema Name') -- Database and Schema name in where statement can be deleted

BEGIN
--TABLE EXISTS
END

ELSE BEGIN
--TABLE DOES NOT EXISTS
END

1

я беру сюди, створюючи вид як приклад .

Оскільки команди ALTER / CREATE не можуть бути в межах BEGIN / END. Вам потрібно протестувати існування і скинути його, перш ніж створювати твір

IF Object_ID('TestView') IS NOT NULL
DROP VIEW TestView

GO

CREATE VIEW TestView
   as
   . . .

GO

Якщо ви стурбовані втраченими дозволами, ви можете також написати сценарії GRANT та повторно запустити їх у кінці.

Ви можете обернути create / alter у рядок і зробити EXEC - це може стати некрасивим для великих переглядів

DECLARE @SQL as varchar(4000)

-- set to body of view
SET @SQL = 'SELECT X, Y, Z FROM TABLE' 

IF Object_ID('TestView') IS NULL
    SET @SQL = 'CREATE VIEW TestView AS ' + @SQL
ELSE    
    SET @SQL = 'ALTER VIEW TestView AS ' + @SQL

0

Якщо хтось намагається зробити це те ж саме в linq to sql (або, особливо, linqpad), увімкніть опцію, щоб включити системні таблиці та представлення, і зробіть цей код:

let oSchema = sys.Schemas.FirstOrDefault(s=>s.Name==a.schema )
where oSchema !=null
let o=oSchema!=null?sys.Objects.FirstOrDefault (o => o.Name==a.item && o.Schema_id==oSchema.Schema_id):null
where o!=null

враховуючи, що у вас є об'єкт з ім'ям у властивості, що називається, і схема у властивості, що називається схемою, де ім'я змінної джерела a


0

Якщо це буде "кінцевою" дискусією, то слід зазначити, що сценарій Ларрі Леонарда може запитувати віддалений сервер, а також якщо сервери підключені.

if exists (select * from REMOTE_SERVER.MyOtherDatabase.sys.tables where name = 'MyTable')
    print 'Exists'

Можливо, це більше підходить додати це як коментар до відповіді Леонарда чи, можливо, як редагування?
EWit

0

У мене виникли деякі проблеми з вибором INFORMATIONAL_SCHEME та OBJECT_ID. Я не знаю, чи це проблема драйвера ODBC чи щось таке. Запитання від студії управління SQL, обидва, були в порядку.

Ось рішення:

SELECT COUNT(*) FROM <yourTableNameHere>

Отже, якщо запит не вдається, такої таблиці в базі даних, мабуть, немає (або у вас немає дозволу на доступ до неї).

Перевірка проводиться шляхом порівняння значення (у моєму випадку ціле число), поверненого виконавцем SQL, який займається драйвером ODBC.

if (sqlexec(conectionHandle, 'SELECT COUNT(*) FROM myTable') == -1) {
  // myTable doesn't exist..
}

Не вдається з яким виходом?
чверть

@wscourge, помилка SQL-запиту або щось подібне. Я просто перевіряю значення повернення від функції виконавця.
Майкл Квад

Додайте це до своєї відповіді
вторгнути

0

Є ще один варіант перевірити, чи існує таблиця в базі даних

IF EXISTS(SELECT 1 FROM [change-to-your-database].SYS.TABLES WHERE NAME = 'change-to-your-table-name')
BEGIN
    -- do whatever you want
END

-1

Запустіть цей запит, щоб перевірити, чи існує таблиця в базі даних:

IF(SELECT TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'YourTableName') IS NOT NULL
PRINT 'Table Exists';

-6

врахуйте, що в одній базі даних є таблиця t1. ви хочете запустити скрипт на іншій базі даних, як-от - якщо t1 існує, то більше нічого не створюйте t1. Для цього відкрийте візуальну студію та виконайте наступне:

Клацніть правою кнопкою миші на t1, потім таблицю Script як, потім DROP та Create To, а потім редактор нових запитів

ви знайдете бажаний запит. Але перед тим, як виконати цей сценарій, не забудьте прокоментувати оператор drop у запиті, оскільки ви не хочете створити новий, якщо такий вже є.

Дякую


У SSMS 2012 він більше не виконує перевірку if-postoji, якщо вона коли-небудь робила це (я не пам'ятаю, як колишні версії генерували вищевказаний сценарій). Можливо, ви помиляєтесь із тим, як інші інструменти db розробляють сценарії об’єктів таблиці?
Івайло Славов

Якщо ви попросите, SSMS виконає перевірку, якщо існує. Інструменти> Опції> Провідник об'єктів SQL Server> Сценарій> "Параметри сценаріїв об'єктів": "Перевірка на наявність об'єкта" = True
Seann Alexander
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.