Как проверить существование SQL-сервера возражают и отбрасывать его?

Ваш код хорошо работал в VB.NET, потому что он неявно делает любые броски, в то время как C# имеет и неявные и явные.

В C# преобразование из десятичного числа для удвоения является явным, поскольку Вы теряете точность. Например, 1.1 не может быть точно выражен как двойное, но может как десятичное число (см." Числа с плавающей точкой - более неточный, чем Вы думаете " по причине почему).

В VB преобразование было добавлено для Вас компилятором:

decimal trans = trackBar1.Value / 5000m;
this.Opacity = (double) trans;

то, Что (double) должен быть явно указан в C#, но может быть , подразумевало более 'прощающим' компилятором VB.

6
задан Benjamin 4 November 2016 в 10:38
поделиться

5 ответов

IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id (N'[dbo].[IsSomething]') AND OBJECTPROPERTY(id, N'IsFunction') = 1) 

DROP function IsSomething
GO
9
ответ дан 8 December 2019 в 14:45
поделиться

Ответ на ваш отредактированный вопрос:

if object_id('IsSomething', 'fn') is not null drop function IsSomething
go
4
ответ дан 8 December 2019 в 14:45
поделиться

Шаблон из Visual Studio 2008 Добавить -> Сценарий хранимой процедуры равен

IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'Stored_Procedure_Name')
    BEGIN
        DROP  Procedure  Stored_Procedure_Name
    END

GO

CREATE Procedure Stored_Procedure_Name
/*
    (
        @parameter1 int = 5,
        @parameter2 datatype OUTPUT
    )

*/
AS


GO

/*
GRANT EXEC ON Stored_Procedure_Name TO PUBLIC

GO
*/

Для процедуры Sql Server Management Studio дает следующее сценарий для удаления

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_DeleteXyz]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[usp_DeleteXyz]

аналогично для генерируемой функции сценарий

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[udf_GetXyz]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[udf_GetXyz]

Я в основном видел последние формы (двухстрочные версии) в большинстве кодовых баз, над которыми я работал, и нет необходимости объявлять переменную.

2
ответ дан 8 December 2019 в 14:45
поделиться

Вот так

IF OBJECT_ID('YourObject', 'ObjectsType') IS NOT NULL DROP <ObjectsType> [YourObject]
1
ответ дан 8 December 2019 в 14:45
поделиться

Похоже на любой другой язык, где вы пытаетесь объявить одну и ту же глобальную переменную несколько раз. Обычно мы не пишем:

var a;
a = 0;
...
...
undefine a;
a = 1;
...
...
undefine a;
a = 2;

Мне кажется, вам просто нужно знать структуру кода, который вы пишете.

Я бы не стал рассматривать объявленную переменную как «объект базы данных», BTW . Но ваш вопрос имеет больше смысла, если по какой-то причине вы это делаете.

0
ответ дан 8 December 2019 в 14:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: