SQL中向表中添加的字符都变成问号了,啥情况?怎么处理?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中向表中添加的字符都变成问号了,啥情况?怎么处理?相关的知识,希望对你有一定的参考价值。
添加的字符都变成问号显示,是怎么回事?
那是因为编码格式不正确..比如 说你和程序里是UTF-8..但是你和数据库是GB2312就会成乱码 参考技术A 既然是SQL Server也能出这样的问题。。。我想LZ你是不是使用数据批量导入的办法导入到数据库的。。。注意下:检查进入数据库表之前的每个字段数据是不是后面包含有空格。。。 参考技术B 乱码问题。。。你应该跟踪调试一下,看在哪开始变成乱码了,不单单是数据库的编码问题,各个环节都有可能出问题,不能一概而论。。。 参考技术C 这个是编码的问题,光靠转换也不能解决;有些是数据库设置的问题;估计你用的是mysql吧;如何在SQL中向表中添加“X”行?
如果我有一个表,那么让我们说客户和我想从用户那里收到一个数字(Form)并在Customer表中创建X行。假设客户在客户表中输入了我想要4个新行的数字4。我怎样才能做到这一点?
insert into Customer Valus ('Helen' , 36 )
答案
您可以使用存储过程,然后传递要添加的客户数。像这样......
create procedure AddNewCustomers
@NumberOfCustToAdd int
as
declare @counter int
set @counter = 0
while @counter < @NumberOfCustToAdd
begin
//put your insert statement here
set @counter = @counter + 1
end
go
然后,调用该过程传递用户请求的客户数量...
exec AddNewCustomers @NumberOfCustomersToCreate
另一答案
这是你想要的吗 -
INSERT INTO Customers(Name)
VALUES(NULL)
GO 10
这将插入10行,您可以稍后更新。
另一答案
在这里,这将从传入的变量生成4个相同的行。这将最多100行。
根据需要取消注释并更正插入语句。
DECLARE @I INT, @NAME NVARCHAR(10)
SET @NAME = 'HELEN'
SET @I=4
;WITH MYCTE
AS
(
SELECT @NAME AS NAME, X=1
UNION ALL
SELECT NAME, X+1
FROM MYCTE
WHERE X<@I
)
-- INSERT INTO...
SELECT *
FROM MYCTE OPTION(MAXRECURSION 100)
以上是关于SQL中向表中添加的字符都变成问号了,啥情况?怎么处理?的主要内容,如果未能解决你的问题,请参考以下文章
T-SQL中向表中插入一条数据,其中类型为Decimal的列对应的插入值为‘2400’可就是不行还报“......