Ich habe einige Probleme/Fragen mit der Verwendung von [
, und '
in Tabellennamen.
Zum Beispiel, warumSQL Fehler Tabellenname mit [,] und '
SELECT TOP 1000 [O'test]
,[NumeNOU]
FROM [dbname].[dbo].[O'conor]
dieser Arbeit und diese nicht
use dbname
GO
DECLARE @COUNT int
SELECT @COUNT = Count(*) FROM dbname.INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = [dbname].[dbo].[O'conor]
PRINT @COUNT
mit dem Fehler
Msg 4104, Ebene 16, Status 1, 4 Line Die mehrteilige Bezeichner "dbname.dbo.O'conor" konnte nicht gebunden werden.
oder diese
use dbname
GO
DECLARE @COUNT int
SELECT @COUNT = Count(*) FROM dbname.INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = [O'conor]
PRINT @COUNT
mit dem Fehler
Msg 207, Ebene 16, Status 1, Zeile 4 Ungültiger Spaltenname 'O''conor'.
aber wie diese Arbeit
use dbname
GO
DECLARE @COUNT int
SELECT @COUNT = Count(*) FROM dbname.INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'O''conor'
PRINT @COUNT
TABLE_NAME = [Datenbankname]. [DBO]. [O'CONOR] Dies muss von Anführungszeichen umgeben werden, z. '[dbname]. [dbo]. [O'conor]' – Alex
Der mit 'WHERE TABLE_NAME = [O'conor]' ist definitiv falsch, weil Sie versuchen, es als Spaltennamen zu verwenden, Sie würden stattdessen 'tun WHERE TABLE_NAME = 'O''conor'' –
Die Fehlermeldungen sind völlig korrekt, diese Tabellen haben keine Spalte mit diesem Namen. Möglicherweise möchten Sie nach einer Zeile suchen, in der der Tabellenname enthalten ist, aber dann müssen Sie ein Zeichenfolgenliteral verwenden und nicht auf eine Spalte verweisen, die nicht existiert. Also, was ist die Frage? Du sagst "das geht nicht, aber das tut". Ist die Frage "warum?" ? –