sql生成脚本里SET ANSI_NULLS ON什么意思

我想把两个数据库合并,先讲第一个数据库脚本导出,开头有个SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO是什么意思?这个导出的脚本怎么才... 我想把两个数据库合并,先讲第一个数据库脚本导出,开头有个
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
是什么意思?

这个导出的脚本怎么才能在第二个数据库里运行,使得两个数据库合并?

数据库合并还有其他方法吗?

主要是合并表格、存储过程。是两个不同的数据库。
两个数据库都没有数据
展开
 我来答
binbin2017
推荐于2018-02-27 · TA获得超过3992个赞
知道小有建树答主
回答量:1160
采纳率:0%
帮助的人:899万
展开全部
这些是 SQL-92 设置语句,使 SQL Server 2000/2005 遵从 SQL-92 规则。
当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。当 SET QUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,且必须符合所有 Transact-SQL 标识符规则。
SQL-92 标准要求在对空值进行等于 (=) 或不等于 (<>) 比较时取值为 FALSE。当 SET ANSI_NULLS 为 ON 时,即使 column_name 中包含空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中包含非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍会返回零行。
当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于 (<>) 比较运算符不遵从 SQL-92 标准。使用 WHERE column_name = NULL 的 SELECT 语句返回 column_name 中包含空值的行。使用 WHERE column_name <> NULL 的 SELECT 语句返回列中包含非空值的行。此外,使用 WHERE column_name <> XYZ_value 的 SELECT 语句返回所有不为 XYZ_value 也不为 NULL 的行。
来自白云洞美如冠玉&#x00A0;的黑麦草
2018-12-18 · TA获得超过529个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:18万
展开全部
-- Create table t1 and insert values.
CREATE TABLE dbo.t1 (a INT NULL);
INSERT INTO dbo.t1 values (NULL),(0),(1);
GO

-- Print message and perform SELECT statements.
PRINT 'Testing default setting';
DECLARE @varname int;
SET @varname = NULL;

SELECT a
FROM t1
WHERE a = @varname;

SELECT a
FROM t1
WHERE a <> @varname;

SELECT a
FROM t1
WHERE a IS NULL;
GO

-- SET ANSI_NULLS to ON and test.
PRINT 'Testing ANSI_NULLS ON';
SET ANSI_NULLS ON;
GO
DECLARE @varname int;
SET @varname = NULL

SELECT a
FROM t1
WHERE a = @varname;

SELECT a
FROM t1
WHERE a <> @varname;

SELECT a
FROM t1
WHERE a IS NULL;
GO

-- SET ANSI_NULLS to OFF and test.
PRINT 'Testing SET ANSI_NULLS OFF';
SET ANSI_NULLS OFF;
GO
DECLARE @varname int;
SET @varname = NULL;
SELECT a
FROM t1
WHERE a = @varname;

SELECT a
FROM t1
WHERE a <> @varname;

SELECT a
FROM t1
WHERE a IS NULL;
GO

-- Drop table t1.
DROP TABLE dbo.t1;

不管 ANSI_NULLS 数据库选项或 SET ANSI_NULLS 的设置如何,请在可能包含空值的比较中使用 IS NULL 和 IS NOT NULL。
进行连接时, SQL Server 的 SQL Server Native Client ODBC 驱动程序和 SQL Server Native Client OLE DB 访问接口会自动将 ANSI_NULLS 设置为 ON。 该设置可以在 ODBC 数据源、ODBC 连接属性或 OLE DB 连接属性(它们在连接到 SQL Server 实例之前在应用程序中设置)中进行配置。 SET ANSI_NULLS 的默认值为 OFF。
对计算列或索引视图创建或更改索引时,SET ANSI_NULLS 也必须为 ON。 如果 SET ANSI_NULLS 为 OFF,则针对表(包含计算列或索引视图的索引)的 CREATE、UPDATE、INSERT 和 DELETE 语句将失败。 SQL Server 将返回一个错误消息,该错误消息会列出所有违反所需值的 SET 选项。 另外,在执行 SELECT 语句时,如果 SET ANSI_NULLS 为 OFF,则 SQL Server 忽略计算列或视图的索引值并解析选择操作,就好像表或视图没有这样的索引一样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式