Como forçar dbo nome do esquema?
-
11-07-2019 - |
Pergunta
Eu estou usando "SQL SERVER PROJECT" no VS 2008 para criar UDF em C # Então eu estou usando o comando deploy para publicar DLL no servidor MS SQL 2005
Tudo funciona bem, exceto todas as UDFs criadas são de propriedade de mim (como usuário) Mas eu queria manter dbo esquema (por exemplo: dbo.UDF_TEST - não jonny.UDF_TEST)
Qualquer idéia de como gerenciar thar?
Solução 2
Eu encontrei uma outra abordagem que permite fazer tudo dentro VS.
Eu adicionei a script de SQL projeto chamado "Postdeployscript.sql":
DECLARE @SQL NVARCHAR (200)
SET @SQL = 'alter esquema transferência dbo' + CURRENT_USER + '[UDF_GET_AUDIT_VALUE]'
Executar (@SQL)
GO
script é executado automaticcally por VS durante o processo de depolyment e muda esquemas de usuário atual para DBO.
Contras: você precisa adicionar cada UDF / USP você ceating manualmente
PS: Por favor, note que você também pode usar Predeployscript.sql para executar algumas commmands antes da implantação
Outras dicas
implantar a UDF de uma conta que é sysadmin, ou dbo no banco de dados. Você pode construir a DLL e, em seguida, manualmente implantá-lo, entrando em estúdio gestão como dbo ao banco de dados e executar estes comandos:
CREATE ASSEMBLY Geocode FROM
'C: \ PATH \ YourUDF.dll' COM
PERMISSION_SET = SAFE
ou
- De dentro Visual Studio na Solution Explorer, clique no UDF projeto (não a solução).
- Vá para propriedades.
- Clique na guia banco de dados.
- Você pode alterar a conexão corda, e também alterar a montagem proprietário aqui.