Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Удалить view, если оно существует (проверка существования)  [new]
Боброкрыс
Guest
Что лучше и почему?:

IF EXISTS(SELECT * FROM sys.views WHERE object_id=OBJECT_ID(N'[dbo].[view_name]'))
	DROP VIEW [dbo].[view_name]
GO


или

IF EXISTS(SELECT * FROM sys.views WHERE name='view_name')
	DROP VIEW [dbo].[view_name]
GO


? И это же не кроссплатформенное, да? Кроссплатформенно через что там?
30 мар 14, 01:33    [15806590]     Ответить | Цитировать Сообщить модератору
 Re: Удалить view, если оно существует (проверка существования)  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Боброкрыс,

На выбор information_schema.view и object_id ()
30 мар 14, 02:04    [15806661]     Ответить | Цитировать Сообщить модератору
 Re: Удалить view, если оно существует (проверка существования)  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35396
Блог
create schema tmp
go

create view dbo.тест
as
select 1 as ccc
go

create view tmp.тест
as
select 1 as ccc
go

SELECT * FROM sys.views


ваш КО )
30 мар 14, 03:11    [15806708]     Ответить | Цитировать Сообщить модератору
 Re: Удалить view, если оно существует (проверка существования)  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Боброкрыс
Кроссплатформенно через что там?
Через INFORMATION_SCHEMA
30 мар 14, 11:13    [15806902]     Ответить | Цитировать Сообщить модератору
 Re: Удалить view, если оно существует (проверка существования)  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Когда-то я тоже стремился к кроссплатформенности...
Но давно понял: она практически недостижима.

Так что в MSSQL используйте
IF OBJECT_ID(N'ИмяПредставления','V') IS NOT NULL DROP VIEW ИмяПредставления;
и не парьтесь!
30 мар 14, 12:57    [15807077]     Ответить | Цитировать Сообщить модератору
 Re: Удалить view, если оно существует (проверка существования)  [new]
Боброкрыс
Guest
Спасибо!
31 мар 14, 10:49    [15809690]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить