代码之家  ›  专栏  ›  技术社区  ›  Casey Crookston

sp\u executesql:过程需要类型为“ntext/nchar/nvarchar”的参数“@statement”

  •  1
  • Casey Crookston  · 技术社区  · 7 年前

    EXECUTE sp_executesql 
        'select * from AccessOrganizationSettings where OrganizationSys = @OrganizationSys', 
        N'@OrganizationSys nvarchar(250)', 
        @OrganizationSys = '805408'
    

    但我得到了这个错误:

    不确定我做错了什么。

    1 回复  |  直到 7 年前
        1
  •  4
  •   Aaron Bertrand    7 年前

    正如错误所说,您需要 nvarchar 而不是 varchar

    EXECUTE sp_executesql 
        N'select * from AccessOrganizationSettings where OrganizationSys = @OrganizationSys', 
        N'@OrganizationSys nvarchar(250)', 
        @OrganizationSys = N'805408'
    

    这个 N 使字符串成为 nvarchar公司