Перевірте, чи існує таблиця в 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.