sql - 如何处理 Sql server CREATE TABLE 数据库名称中的空格?

标签 sql .net sql-server database vb.net

我有以下代码并在 vb.net 项目中使用它。如果数据库名称中没有空格,这会很好地工作。例如,如果数据库名称是“SampleCompany”,它工作正常,但如果数据库名称更改为“Sample Company” 我们在这部分 sql 命令中收到错误:“BEGIN CREATE TABLE”& cn.Database。 我们必须能够处理带/不带空格的数据库名称。

有什么解决这个问题的建议吗? 谢谢。

cn.Database="Sample Company"

sqlCreate = "IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE      TABLE_NAME = 'Cloud_UserSetting' AND TABLE_CATALOG ='" & cn.Database & "') " & _
            "BEGIN CREATE TABLE " & cn.Database & ".dbo.Cloud_UserSetting(CloudId int NOT NULL, Name varchar(100) NOT NULL," & _
            "Setting varchar(250) NULL " & _
            "CONSTRAINT PK_Cloud_UserSetting PRIMARY KEY CLUSTERED(CloudId,Name)) END"
command = New SqlCommand(sqlCreate, cn)
command.ExecuteNonQuery()

最佳答案

使用方括号包含列名和表名。

例如:使用[table name]代替table name

关于sql - 如何处理 Sql server CREATE TABLE 数据库名称中的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29076871/

相关文章:

sql-server - 如何在 SQL Server 触发器中复制插入、更新、删除的行

sql - PostgreSQL : Mark the first row of a group

sql - 在存储过程中执行将获得存储过程的好处

MySQL 查询查找给定参数列表中每个值的列中匹配的计数

C# 3.0 Auto-Properties - 是否可以添加自定义行为?

C#/.NET(核心): Is the type system safe enough to prevent SQL injections?

mysql - SQL Server 中如果value 为null 有两种含义,如何获取记录?

sql-server - 使用生成的 DDL 时为 "<xyz> must be the first statement in a query batch"

sql - T-SQL 作业步骤命令中的 GETDATE()

c# - 在 NuGet 配置中使用环境变量?