存储过程以支持unicode字符

时间:2015-10-04 14:44:28

标签: sql sql-server stored-procedures unicode

我有这个存储过程

ALTER PROC [Resource_Control].[sp_LocationsInsert] 
@name nvarchar(100) = NULL,
@address nvarchar(500) = NULL
AS 

SET NOCOUNT ON 
SET XACT_ABORT ON  

BEGIN TRAN

INSERT INTO [Resource_Control].[Location] ([name], [address])
SELECT N'@name', N'@address'

COMMIT

名称和地址列都是nvarchar 我的参数之前需要N吗? 如果是的话,我把它们放在正确的位置?

1 个答案:

答案 0 :(得分:1)

不,你不需要它们。

<强> Demo

INSERT INTO [Resource_Control].[Location] ([name], [address])
SELECT N'@name', N'@address'

会将值'@name'和'@address'插入列中。

您需要使用:

INSERT INTO [Resource_Control].[Location] ([name], [address])
SELECT @name, @address;

您使用N''表示字符串文字,而不是像

这样的变量
DECLARE @var NVARCHAR(100) = N'text';