EDIT: tworzenie funkcji brakowało, przykro o tymJak sprawdzić istnienie obiektu serwera sql i go usunąć?
mam prośbę T-SQL, który mówi:
DECLARE @IsSomething bit
SET @IsSomething = 0
IF /some tests/ SET @IsSomething = 1
EXEC('
CREATE FUNCTION IsSomething()
RETURNS bit
AS
BEGIN
RETURN ' + @IsSomething + '
END')
Oczywiście jeśli uruchomię go dwukrotnie uzyskać
There is already an object named 'IsSomething ' in the database.
Jak zrobić coś takiego:
IF EXIST @IsSomething DESTROY @IsSomething // (Pseudo bad code)
Jeśli dwukrotnie zadeklaruję @IsSomething, otrzymuję: "Nazwa zmiennej" @IsSomething "została już zadeklarowana. Nazwy zmiennych muszą być niepowtarzalne w ramach wsadowego zapytania lub procedury składowanej. " Czy niedopasowanie warunku/odpowiedzi było tylko przykładem? Jeśli tak, to może wyjaśnić, dlaczego ludzie uważają to pytanie za nieco mylące ... –
Wszystko to - oprócz nazw zmiennych - jest dokładnie tym, co zrobiłem/błędom, które dostałem. Nieco dalej mam też "SET @IsSomething = 1", dodam to do pytania: – marcgg
@IsSomething nie jest obiektem bazy danych; jest to zmienna T-SQL. Jeśli wystąpił błąd dotyczący istniejącego obiektu, ten obiekt został utworzony za pomocą CREATE [table | zobacz indeks | itp.] oświadczenie, a nie DECLARE. –