当前位置: 首页 > 图文教程 > 数据库 > MSSQL > INSERT语法使用技巧一例

MSSQL
SQL server 随机数函数
SQLServer Top语句参数化方法
SQLServer EVENTDATA()函数来获取DDL 触发器信息
sql server 常用的几个数据类型
SQL Server 排序函数 ROW_NUMBER和RANK 用法总结
数据库Left join , Right Join, Inner Join 的相关内容,非常实用
MySql 安装时的1045错误
SQL Server 中查看SQL句子执行所用的时间
模糊查询的通用存储过程
sql 查询慢的原因分析
SQL Server 数据库优化
数据库 日期加减处理
sql 触发器使用例子
sql 刷新视图
提升SQL Server速度 整理索引碎片
恢复.mdf 数据库步骤
Sql 批量替换所有表中内容
Sql 批量查看字符所在的表及字段
SQLServer XML数据的五种基本操作
SQL Server使用Merge语句当源表数据集为空时,无法进行查询的问题

MSSQL 中的 INSERT语法使用技巧一例


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 144 ::
收藏到网摘: n/a

在SQL Server在线图书(SSBOL)中,请定位sp_dbcmptlevel,然后找出描述6.0、6.5和7.0之间版本兼容性的数据表
。你可以注意到INSERT SQL语句有如下所示的语法。


INSERT X
SELECT select_list INTO Y


早期的SQL Server数据库(6.0或者6.5版本)可以正确地解析这样的语句,但新的SQL Server数据库(7.0 或者8.0版本)就不能正确解析了。虽然语法中的Y 在任何兼容级设置下都不用做插入操作的接收者,但旧的数据库还允许这样的语法存在。这种语法在新的数据库中都因其更严格的语法检查而无法执行,然而,这种"严格要求"却让用户编写的代码更具稳固性。


以下是一个可以在SQL Server 7.0 或者2000上运行的简单脚本,该脚本说明了以上的语法如何通过旧数据库的测试但却不能通过新数据库的检查。


SET NOCOUNT OFF
GO
USE pubs
GO
IF EXISTS (SELECT * FROM sysobjects WHERE type =
'U' AND name = 'test')
BEGIN
DROP TABLE test
END
GO
CREATE TABLE test (col1 INT NULL, col2 INT NULL)
GO
EXEC sp_dbcmptlevel pubs, 65
GO
INSERT test
SELECT 1 ,1 INTO y
GO
EXEC sp_dbcmptlevel pubs, 70
GO
INSERT test
SELECT 2 ,1 INTO y
GO