Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Escape'#';象征_Sql_Sql Server_Sql Server 2008_Sql Insert - Fatal编程技术网

SQL Escape'#';象征

SQL Escape'#';象征,sql,sql-server,sql-server-2008,sql-insert,Sql,Sql Server,Sql Server 2008,Sql Insert,我有一个将数据插入数据库的SQL查询。 以下是我的样本数据: 医嘱ID:1 电子邮件:#TestDistribution 但是,当我尝试将OrderID和Email值插入表中时,SQL Server无法读取“#” 那么,我怎么才能逃脱呢 我知道撇号可以用CHAR(29)转义,而#的等价物是什么 以下是我的疑问: INSERT INTO orders(orderid,email) VALUES(1,'#TestDistribution') 下表结构如下: 命令 orderid:int 电子

我有一个将数据插入数据库的SQL查询。 以下是我的样本数据:

  • 医嘱ID:1
  • 电子邮件:#TestDistribution
但是,当我尝试将
OrderID
Email
值插入表中时,SQL Server无法读取“#

那么,我怎么才能逃脱呢

我知道撇号可以用
CHAR(29)
转义,而
#
的等价物是什么

以下是我的疑问:

INSERT INTO orders(orderid,email) VALUES(1,'#TestDistribution')
下表结构如下:

命令

  • orderid:int
  • 电子邮件:nchar(150)

服务器没有引发任何错误,但在检查orders表时,数据没有插入。

在SQL server 2008上使用以下方法对我来说很好:

创建/插入:

CREATE TABLE yourtable
    ([OrderID] int, [Email] nvarchar(99))
;

INSERT INTO yourtable
    ([OrderID], [Email])
VALUES
    (1, '#TestDistribution')
;
选择:

SELECT * FROM yourtable
输出:

OrderID Email
1       #TestDistribution

你最后得了两个a

试一试


确保列类型应为varchar

create table orders(orderid int(30),email varchar(30));
insert into orders value(1,'#TestDistribution');
select * from orders;

谢谢你在这里发布你的答案。这个问题已经解决了。我发现我的服务器中有一些限制特殊字符的设置

抱歉


谢谢大家

请显示您的insert语句。请发布您的insert查询请发布问题中的实际代码,
字符没有特殊意义,不应成为问题。在描述问题时,请具体说明。“SQL Server无法读取”,这到底是什么意思?您是否真的在字符字符串“#TestDistribution”后得到了一个未闭合的引号?我们告诉您,这应该是可行的,因此问题中必须有更多您没有告诉我们的事情,很可能发生了一些您不知道的事情,但这里没有人可以告诉您它们是什么。您是否在随后回滚的事务中运行它?如何验证该行是否已插入?尝试创建一个,这意味着一个完整的示例,它创建了表,添加了行,然后选择了它,看看是否有效。若确实如此(而且应该如此),您需要深入挖掘应用程序代码。当您运行insert语句时,是否得到“1行影响”?还要检查该表上的触发器。嗨。我正在使用SQLServer2008。这与您的版本相同吗?@IanSiñel是的,更具体地说,我在SQL Server 2008 R2 10.50.4000.0中测试了它,但仍然得到相同的输出。未插入数据。如果删除#,会发生什么情况?#肯定是问题所在吗?表中只有这些字段吗?字段是否需要填充非空数据?也许给我们看一下为你的表格创建表格你是否证明了#是问题,是一个重要的问题-如果是#这是问题,那么将#更改为X可能会停止错误-这不是修复,这是一个实验-你尝试过吗?
create table orders(orderid int(30),email varchar(30));
insert into orders value(1,'#TestDistribution');
select * from orders;