Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Atribui um padrão a uma coluna ou a um tipo de dado de alias.
Importante
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. Recomendamos que crie definições padrão utilizando a palavra-chave DEFAULT das instruções ALTER TABLE ou CREATE TABLE.
Transact-SQL convenções de sintaxe
Sintaxe
sp_bindefault
[ @defname = ] N'defname'
, [ @objname = ] N'objname'
[ , [ @futureonly = ] 'futureonly' ]
[ ; ]
Arguments
[ @defname = ] N'defname'
O nome do padrão criado por CREATE DEFAULT.
@defname é nvarchar(776), sem padrão.
[ @objname = ] N'objname'
O nome da tabela e coluna, ou o tipo de dado de alias, ao qual o padrão deve ser atribuído. @objname é nvarchar(776), sem padrão. @objname não podem ser definidos com tipos definidos pelo utilizador varchar(max), nvarchar(max), varbinary(max), XML ou CLR.
Se @objname for um nome de uma só parte, resolve-se como um tipo de dado de alias. Se for um nome dividido em duas ou três partes, primeiro resolve-se como tabela e coluna; e se esta resolução falhar, resolve-se como um tipo de dado alias. Por defeito, as colunas existentes do tipo de dado alias herdam @defname, a menos que um padrão esteja diretamente ligado à coluna. Um padrão não pode ser atribuído a uma coluna de tipo definido pelo utilizador de texto, ntext, imagem, varchar(max), nvarchar(max), varbinary(max), xml, carimbo temporal ou CLR definido pelo utilizador, uma coluna com a IDENTITY propriedade, uma coluna computada, ou uma coluna que já tenha uma DEFAULT restrição.
@objname podem conter parênteses ([ e ]) como identificadores delimitados. Para obter mais informações, consulte Identificadores de banco de dados.
[ @futureonly = ] 'Futuros-Only'
Usado apenas quando se atribui um padrão a um tipo de dado de alias.
@futureonly é varchar(15), com um padrão de NULL. Quando este parâmetro está definido para futureonly, as colunas existentes desse tipo de dado não podem herdar o novo padrão. Este parâmetro nunca é usado ao atribuir um padrão a uma coluna. Se @futureonly for NULL, o novo padrão está vinculado a quaisquer colunas do tipo de dado de alias que atualmente não tenham padrão ou que estejam a usar o padrão existente do tipo de dado de alias.
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
Observações
Pode usar sp_bindefault para associar um novo padrão a uma coluna, embora usar a DEFAULT restrição seja preferível, ou a um tipo de dado de alias sem desvincular um padrão existente. O antigo padrão é anulado. Não se pode atribuir um padrão a um tipo de sistema SQL Server ou a um CLR definido pelo utilizador. Se o padrão não for compatível com a coluna a que o atribuiu, o Motor de Base de Dados do SQL Server devolve uma mensagem de erro quando tenta inserir o valor predefinido, não quando o atribui.
As colunas existentes do tipo de dado alias herdam o novo padrão, a menos que um padrão esteja diretamente vinculado a elas ou que o futureonly seja especificado como futureonly. Novas colunas do tipo de dado alias herdam sempre o predefinido.
Quando associa um padrão a uma coluna, a informação relacionada é adicionada à sys.columns vista de catálogo. Quando associa um predefinido a um tipo de dado de alias, a informação relacionada é adicionada à sys.types vista de catálogo.
Permissions
O utilizador deve possuir a tabela, ou ser membro do papel fixo de servidor sysadmin , ou os papéis db_owner e db_ddladmin de base de dados fixos.
Examples
A. Atribuir um padrão a uma coluna
Um nome today padrão é definido na base de dados atual usando CREATE DEFAULT. O exemplo seguinte atribui o padrão à HireDate coluna da Employee tabela. Sempre que uma linha é adicionada à Employee tabela e os dados da HireDate coluna não são fornecidos, a coluna recebe o valor do padrão today.
USE master;
GO
EXECUTE sp_bindefault 'today', 'HumanResources.Employee.HireDate';
B. Associe um padrão a um tipo de dado de alias
Já existe um tipo de dado predefinido nomeado def_ssn e um tipo de dado alias nomeado ssn . O exemplo seguinte atribui o padrão def_ssn a ssn. Quando uma tabela é criada, o padrão é herdado por todas as colunas atribuídas ao tipo ssnde dado alias . Colunas existentes do tipo ssn também herdam o padrão def_ssn, a menos que futureonly seja especificado para o valor @futureonly , ou a coluna tenha um padrão diretamente limitado. Os padrões atribuídos a colunas têm sempre prioridade sobre os valores atribuídos a tipos de dados.
USE master;
GO
EXECUTE sp_bindefault 'def_ssn', 'ssn';
C. Use a futureonly opção
O exemplo seguinte atribui o predefinido def_ssn ao tipo ssnde dado de alias . Como futureonly está especificado, nenhuma coluna existente do tipo ssn é afetada.
USE master;
GO
EXECUTE sp_bindefault 'def_ssn', 'ssn', 'futureonly';
D. Usar identificadores delimitados
O exemplo seguinte mostra o uso de identificadores delimitados, [t.1], em @objname.
USE master;
GO
CREATE TABLE [t.1] (c1 INT);
-- Notice the period as part of the table name.
EXECUTE sp_bindefault 'default1', '[t.1].c1';
-- The object contains two periods;
-- the first is part of the table name,
-- and the second distinguishes the table name from the column name.