CLR Trigger debug in un db schema diverso da dbo

martedì 12 ottobre 2010 - 15.21
Tag Elenco Tags  C#  |  .NET 2.0  |  .NET 3.0  |  .NET 3.5  |  Visual Studio 2008  |  SQL Server 2008

maxerre Profilo | Newbie

Ciao,

nella situazione in oggetto ottengo sempre un errore del tipo "Cannot find the object "xxxxxxx" because it does not exist or you do not have permissions.".

Se dichiaro la tabella nello schema dbo tutto funziona correttamente.

Ambienti: SQL Server 2008, VS 2008, C#.

Ovviamente il login al al server è come sysadmin.

Ho cercato in rete ma la situazione non è chiara, nel senso che a qualcuno è capitato il problema ma non ho trovato soluzioni.

grazie in anticipo

max

alx_81 Profilo | Guru

>Ciao,
ciao

>nella situazione in oggetto ottengo sempre un errore del tipo
>"Cannot find the object "xxxxxxx" because it does not exist or
>you do not have permissions.".
>Se dichiaro la tabella nello schema dbo tutto funziona correttamente.
potresti postare un po' di codice? Così non riesco ad esserti di aiuto..

>Ovviamente il login al al server è come sysadmin.
ma poi quando fai il deploy non sei sysadmin vero??

>grazie in anticipo
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

maxerre Profilo | Newbie

>>Ovviamente il login al al server è come sysadmin.
>ma poi quando fai il deploy non sei sysadmin vero??
Ciao Alessandro,

grazie per la risposta. Allora: ho analizzato il codice sql che viene generato da VS e ho scoperto che c'è un bug nella create trigger. Più precisamente il target, cioè la tebella, viene inclusa in parentesi quadre in modo errato. Ad esempio se il target è nome_schema.tabella il target risulta [nome_schema.tabella] che è sbagliato perchè in questo modo si tenta di rirerisi ad una tabella di nome "nome_schema.tabella" e non alla tabella "tabella" nello schema "nome_schema". Il modo corretto di quotare sarebbe [nome_schema].[tabella].

Scoperto questo ho risolto utilizzando i file di script predeploy.sql e postdeploy.sql per gestire l'allocazione del trigger.

alla prossima


max

alx_81 Profilo | Guru

>Scoperto questo ho risolto utilizzando i file di script predeploy.sql
>e postdeploy.sql per gestire l'allocazione del trigger.
perfetto
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5