例如,如果我使用 name 创建视图'4aii'
,为什么 SQL Server 关心它以 开头4
?我可以打电话给桌子Fouraii
或IVaii
。
此外,[]
在幕后做什么以允许将任何字符串用作名称?
一根绳子就是一根绳子,amirite?
我的数据库中有一个以@
符号开头的表。我可以使用以下查询成功查询它:
select * from [@tablename]
Run Code Online (Sandbox Code Playgroud)
此格式适用于 SSMS 和 Crystal Reports。
但是,我有一个 C# 应用程序,其中相同的查询在表名上给出“无效的对象名称”错误。
有什么建议么?
我意识到我需要更新查询,但如果我有一个包含camelCase
空格的数据库,则必须在标识符上使用双引号(即架构、表、列)。我如何摆脱考虑到我的标识符中不能有大写字母或空格。我需要将它们全部标准化为Snake_case。
我参考了其他一些博客,但无法将问题与此逻辑隔离开来。代码如下。抛出附加的错误消息。
-- 1. Import Multiple Delimited Text Files into a SQL Database
-- 1.1 Define the path to the input and define the terminators
USE [Openair_Integration]
DECLARE @Path NVARCHAR(255) = 'C:\\Users\nicolas.gutierrez.su\Downloads\\'
DECLARE @RowTerminator NVARCHAR(5) = CHAR(13) + CHAR(10)
DECLARE @ColumnTerminator NVARCHAR(5) = CHAR(9)
-- 1.2 Define the list of input and output in a temporary table
IF OBJECT_ID('[dbo].[Files_Temporary]', 'U') IS NOT NULL
DROP TABLE [dbo].[Files_Temporary];
CREATE TABLE [dbo].[Files_Temporary]
(
[ID] INT
, [FileName] NVARCHAR(255)
, [TableName] NVARCHAR(255)
);
INSERT INTO …
Run Code Online (Sandbox Code Playgroud)