文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» 微软SQL Server专区 » SQL Server应用开发 » INSERT语法使用技巧一例       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [转载] INSERT语法使用技巧一例  ( 查看:281  回复:1 )   
 
longleng
新新人类  点击可查看详细



帖子 33
精华 0
无忧币 129
积分 125
阅读权限 20
注册日期 2007-10-24
最后登录 2007-12-9 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-12-9 22:11   标题:INSERT语法使用技巧一例
上一帖 |
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




网络工程师到底该不该去考CCIE认证?
2007-12-9 22:111楼
[ 顶部 ]
 
Icansoft
新新人类  点击可查看详细



十二生肖之牛   狮子座   行业勋章   技术勋章   诚信兄弟  
帖子 50
精华 0
无忧币 649
积分 62
阅读权限 20
注册日期 2007-11-10
最后登录 2008-1-23 离线

[查看资料]  [发短消息]  [Blog
[个人主页]    QQ       
发表于:2007-12-25 00:38 
旧语法本身不符合SQL标准吧?



2007-12-25 00:382楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号