我在sql server 2000中文版中,在联机帮助里面有下面的一段话:
运行时生成语句
在调用数据库 API 函数或方法执行 SQL 语句前,大多数 Microsoft® SQL Server™ 应用程序必须在运行时动态生成这些语句。例如,使用 ODBC 的 C 语言应用程序动态地将一个或多个 SQL 语句生成到字符数组中,然后将此数组传递给 ODBC SQLPrepare 或 SQLExecDirect 函数。Transact-SQL 支持使用以下两种方法在运行时生成 Transact-SQL 脚本、存储过程和触发器中的 SQL 语句: 使用 sp_executesql 系统存储过程执行 Unicode 字符串。sp_executesql 支持与 RAISERROR 语句相似的参数替换。
使用 EXECUTE 语句执行字符串。EXECUTE 语句不支持在执行的字符串中的参数替换。
下面是使用 sp_executesql 执行动态生成包含 SQL 语句的字符串的简单示例:USE Northwind
DECLARE @SQLString NVARCHAR(500)/* Set column list. CHAR(13) is a carriage return, line feed.*/
SET @SQLString = N'SELECT FirstName, LastName, Title' + CHAR(13)/* Set FROM clause with carriage return, line feed. */
SET @SQLString = @SQLString + N'FROM Employees' + CHAR(13)/* Set WHERE clause. */
SET @SQLString = @SQLString + N'WHERE LastName LIKE ''D%'''EXEC sp_executesql @SQLString
GO
我想知道N'FROM Employees'这句的From Employees前面的字母N是干什么的?
运行时生成语句
在调用数据库 API 函数或方法执行 SQL 语句前,大多数 Microsoft® SQL Server™ 应用程序必须在运行时动态生成这些语句。例如,使用 ODBC 的 C 语言应用程序动态地将一个或多个 SQL 语句生成到字符数组中,然后将此数组传递给 ODBC SQLPrepare 或 SQLExecDirect 函数。Transact-SQL 支持使用以下两种方法在运行时生成 Transact-SQL 脚本、存储过程和触发器中的 SQL 语句: 使用 sp_executesql 系统存储过程执行 Unicode 字符串。sp_executesql 支持与 RAISERROR 语句相似的参数替换。
使用 EXECUTE 语句执行字符串。EXECUTE 语句不支持在执行的字符串中的参数替换。
下面是使用 sp_executesql 执行动态生成包含 SQL 语句的字符串的简单示例:USE Northwind
DECLARE @SQLString NVARCHAR(500)/* Set column list. CHAR(13) is a carriage return, line feed.*/
SET @SQLString = N'SELECT FirstName, LastName, Title' + CHAR(13)/* Set FROM clause with carriage return, line feed. */
SET @SQLString = @SQLString + N'FROM Employees' + CHAR(13)/* Set WHERE clause. */
SET @SQLString = @SQLString + N'WHERE LastName LIKE ''D%'''EXEC sp_executesql @SQLString
GO
我想知道N'FROM Employees'这句的From Employees前面的字母N是干什么的?
解决方案 »
- 求SQL查询代码
- 一条sql语句的多重搜索问题
- 求助:Baidu面试题
- SQL EXPRESS附加数据库后,如何修改路径
- 急:MRP系统优化连接套帐出错,想找到数据连接信息在哪里
- 怎么样实现三个月未登录过的帐号,自动从数据库里删除掉
- 如何利用SQL语句 取一个固定格式的值的某一部分
- 请问:在远程备份时怎样指定远程机器的地址,是否在备份前还需要建立备份设备
- SQL Server7.0日期的处理
- 麻烦懂C#的大神帮忙看一下,datagridview怎么插入数据?
- 请问各路大侠: SQL 存储过程中使用 @ 和 @@ 各有什么作用呀。
- 在SQL2005中如何解决"不允许对系统目录进行即席更新。"的问题
在SQL联机帮助里找 Unicode 数据类型
char is short for character.
var is short for vary.
N is short for national
N表示Unicode类型,就是说同一字符在数据库中的数据页相同。
非Unicode类型则不同,例如一个中文字符在繁体和简体操作系统的数据页不同,所以简体字在繁体下直接定义会变成问号(乱码,不识别),如果定义为N'中文'则没有问题。