Как Вы отбрасываете значение по умолчанию из столбца в таблице?

[return:MarshalAs]
public ISomething Foo()
{
    return new MyFoo();
}
48
задан Yishai 1 September 2009 в 20:38
поделиться

2 ответа

Это ограничение по умолчанию, вам необходимо выполнить следующее:

ALTER TABLE {TableName} 
DROP CONSTRAINT ConstraintName

Если вы не указали имя при создании ограничения, то SQL Server создал его для вас. Вы можете использовать SQL Server Management Studio, чтобы найти имя ограничения, перейдя к таблице, открыв ее узел дерева, а затем открыв узел "Ограничения".

Если я правильно помню, ограничение будет называться как-то вроде DF_SomeStuff_ColumnName.

1284] РЕДАКТИРОВАТЬ: Ответ Джоша В. содержит ссылку на вопрос SO , в котором показано, как найти автоматически сгенерированное имя ограничения с помощью SQL вместо использования интерфейса Management Studio.

затем SQL Server создал его для вас. Вы можете использовать SQL Server Management Studio, чтобы найти имя ограничения, перейдя к таблице, открыв ее узел дерева, а затем открыв узел "Ограничения".

Если я правильно помню, ограничение будет называться как-то вроде DF_SomeStuff_ColumnName.

РЕДАКТИРОВАТЬ: Ответ Джоша В. содержит ссылку на вопрос SO , в котором показано, как найти автоматически сгенерированное имя ограничения с помощью SQL вместо использования интерфейса Management Studio.

затем SQL Server создал его для вас. Вы можете использовать SQL Server Management Studio, чтобы найти имя ограничения, перейдя к таблице, открыв ее узел дерева, а затем открыв узел "Ограничения".

Если я правильно помню, ограничение будет называться как-то вроде DF_SomeStuff_ColumnName.

1284] РЕДАКТИРОВАТЬ: Ответ Джоша В. содержит ссылку на вопрос SO , в котором показано, как найти автоматически сгенерированное имя ограничения с помощью SQL вместо использования интерфейса Management Studio.

46
ответ дан 26 November 2019 в 18:57
поделиться

Это то, что я придумал (прежде чем увидеть ответ Джоша У., ну на самом деле я видел это, но бегло просмотрел, что неправильно понял):

declare @name nvarchar(100)
select @name = [name] from sys.objects where type = 'D' and parent_object_id = object_id('sometable')

if (@name is not null)
  begin
     exec ('alter table [sometable] drop constraint [' + @name +']')
  end

У меня есть преимущество в том, что я знаю, что есть только один такое ограничение на всю таблицу. Если бы их было двое, я полагаю, именно поэтому вы должны дать им имена;)

(Проблема в том, что это модификация, внесенная в 10 различных клиентских баз данных, поэтому нет одного согласованного имени для вставьте скрипт)

13
ответ дан 26 November 2019 в 18:57
поделиться
Другие вопросы по тегам:

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