标签: nvarchar

SQL中String和nvarchar(5000)有什么区别?

我在PostgreSQL或Oracle中做我的第一个数据库项目.

我想得到我的问题的答案.

sql database string nvarchar

2
推荐指数
1
解决办法
4232
查看次数

nvarchar连接问题

在处理所有困难的事情后,我可能会尝试做一件简单的事情但看起来这让我很头疼.我试图将文本连接到变量@strXml这是一个nvarchar变量来构建Xml元素,但@strXml返回null.请帮忙.我在下面发布我的代码.

DECLARE @strXml nvarchar(max) = ''
SET @strXml = '<PromoName>' + (Select PromoName From #Temp) + '</PromoName>' 
SET @strXml = @strXml + '<PromoDesc>' + (Select PromoDesc From #Temp) + '</PromoDesc>'
SET @strXml = @strXml + '<PromoCode>' + (Select PromoCode From #Temp) + '</PromoCode>' 
SET @strXml = @strXml + '<BeginDate>' + (Select Convert(nvarchar, BeginDate) From #Temp) + '</BeginDate>'
SET @strXml = @strXml + '<EndDate>' + (Select Convert(nvarchar, EndDate) From #Temp) + '</EndDate>'
SET @strXml = @strXml + '<RawHtml>' + (Select RawHtml …
Run Code Online (Sandbox Code Playgroud)

sql nvarchar

2
推荐指数
1
解决办法
6329
查看次数

选择非空列

我有一个varbinary(max)列和nvarchar(max)列的表.其中一个是null,另一个是值.

我想返回具有varbinary(max)列值的列.到目前为止,我已经尝试过这个,但是没有用:

SELECT 
      A =  
      CASE A
         WHEN NULL THEN B
         ELSE A 
      END
FROM Table
Run Code Online (Sandbox Code Playgroud)

sql sql-server nvarchar varbinary sql-server-2008

2
推荐指数
1
解决办法
430
查看次数

将nvarchar值'Internet Explorer 3 original'转换为数据类型int时转换失败

在SQL Server 2008(TSQL)中,我创建了一个这样的存储过程:

CREATE PROCEDURE SP_1_10_2
AS
declare @mostValuableBook nvarchar(255)
SELECT @mostValuableBook = Name
FROM books
WHERE price =
    ( SELECT MAX(price)
      FROM books
      WHERE izd LIKE '%BHV%' );
return @mostValuableBook
GO
Run Code Online (Sandbox Code Playgroud)

但是,当我试图执行它时:

declare @x nvarchar(255)
EXECUTE @x = SP_1_10_2;
SELECT 'The most expensive BHV book:', @x AS 'Name'
GO
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

将nvarchar值'Internet Explorer 3 original'转换为数据类型int时转换失败.

似乎问题就在于此

EXECUTE @x = SP_1_10_2;
Run Code Online (Sandbox Code Playgroud)

你能告诉我什么是错的吗?为什么要尝试转换为int?

t-sql int nvarchar execute

2
推荐指数
1
解决办法
2549
查看次数

TSQL:在字符串中明确指定NVARCHAR有什么好处?

当你添加传递一个新job_typesys.sp_cdc_add_job @job_type,
(这是类型nvarchar(20))

您可以将参数传递为

  • N'清理'
  • 清理

使用前一种语法N'将参数传递给存储过程是否有任何理由或好处?

sql t-sql sql-server stored-procedures nvarchar

1
推荐指数
2
解决办法
1692
查看次数

如果nvarchar的长度是x,那么改变它

我一直在更改数据库,并创建一个脚本,以便它可以在原始数据库上运行,以继承我所做的所有更改.

我需要改变NVARCHAR的长度,但是在改变列之前要检查它的长度.我对语法有点挣扎,任何人都可以帮我解决这个问题吗?

SELECT LEN(colName) AS MyLength FROM tblName
IF MyLength = 60
BEGIN
    ALTER TABLE tblName
    ALTER COLUMN colName nvarchar(140) NOT NULL
END
GO
Run Code Online (Sandbox Code Playgroud)

如果我尝试在SQL Server Management Studio中运行此查询,则会收到一条错误消息:

列名称"MyLength"无效.

sql-server nvarchar alter

1
推荐指数
2
解决办法
6552
查看次数

SQL Server 2005:将varchar转换为nvarchar问题

我有两varchar列的表first_namelast_name.

现在我需要将这些列转换nvarchar为支持UTF-8.

nvarchar在SSMS中为这些列选择数据类型,当我尝试输入一些UTF-8数据时,我的符号会转换为问号.例如,如果我输入??????(乌克兰语),它将被转换为??????.

有什么问题以及如何解决?

谢谢.

sql-server nvarchar

1
推荐指数
1
解决办法
2070
查看次数

SQL Server 中未插入口音

我正在尝试将此名称 -> Num?Twó 与重音一起添加到 MS sql server 中的表中。但它只是被插入为 -> NumaTwó(没有?)。我尝试了很多编码,但似乎不起作用。我已经给出了下表的 DDL。请帮忙

CREATE TABLE [dbo].[test](
    [testname] [nvarchar](40) COLLATE SQL_Latin1_General_CP1253_CI_AI NULL
 ) ON [PRIMARY]

----------- Insert-----------
insert into test values ('Num?Twó');
Run Code Online (Sandbox Code Playgroud)

sql sql-server nvarchar character-encoding non-ascii-characters

1
推荐指数
1
解决办法
926
查看次数

如何在 phpMyAdmin 中创建 NVARCHAR 列?

我需要使用 NVARCHAR 因为我必须处理西里尔符号,但是 phpMyadmin 说这种数据类型无法识别。我使用 phpMyAdmin 4.6.4 和 MySQL 5.7。如何解决这个问题呢?

在此处输入图片说明

mysql sql nvarchar phpmyadmin sqldatatypes

1
推荐指数
1
解决办法
4097
查看次数

为什么声明为 NVARCHAR(MAX) 的变量会删除字符串块?

无论出于何种原因,查询都会被构建为字符串并传递给另一个存储过程来执行。

查询量很大。

超过一千行,我们遇到了一个问题,需要我对其进行调试。

查询被构建到声明的NVARCHAR(MAX)变量中,但是当我使用以下命令打印它时,发生了奇怪的事情 -

WHILE @Printed < @ToPrint BEGIN 
    PRINT(SUBSTRING(
        @sql, @Printed, 4000))
    SET @Printed = @Printed + 4000
    PRINT('Printed: ' + CONVERT(VARCHAR, @Printed))
END
Run Code Online (Sandbox Code Playgroud)

在打印消息的某个地方,它只是......丢失了一大块,我不明白为什么。NVARCHAR(MAX)应该能够举行战争与和平超过 100 次,并且这个查询不是战争与和平。

我知道PRINT(...)有一次只能打印 4000 个字符的限制(因此是循环),但这并不能解释为什么变量只是@sql在某些地方丢失了一块。

如果有帮助的话,具体来说,块丢失的位置是打印前 4,000 个字符后的大约 1,600 个字符。

它为什么要这样做?我是否缺少在查询开始时设置系统变量(例如 NOCOUNT 或 ARITHABORT?我什至不知道它们的作用,或者它们是否参与其中。


编辑:MCVE:这里。要重现,请复制粘贴到 Microsoft SQL Server Management Studio 中并按“F5”。打印的消息将不包含完整的@sql。

sql-server nvarchar max

1
推荐指数
1
解决办法
1282
查看次数