关于 T-SQL 的几点小九九
2009-06-08 10:31:48 来源:WEB开发网上面的示例是我实际工作中编写的存储过程,无论您是使用 SELECT TOP 也好,还是使用 SET ROWCOUNT也罢,这些都不是问题,关键问题是您是否了解过他们都不属于 ANSI SQL 标准,而是 T-SQL 特有的。
如何实现上面存储过程中关键部分的 ANSI SQL 的实现方法,为了能简单直白的说明问题,并且能顺利的在真实的数据库环境中运行该 SQL 语句,我只是抽象出上面的存储过程中部分 SQL 语句来说明问题。
-- ANSI SQL 方法
USE OrderForm
IF EXISTS (SELECT [name] FROM sysobjects
WHERE [name] = 'proc_GetNewsSourceOfID' AND type = 'P')
DROP PROCEDURE proc_GetNewsSourceOfID
GO
CREATE PROCEDURE [dbo].[proc_GetNewsSourceOfID]
(
@Count int, -- 用于指定返回记录的行数
@newClsCode varchar(50) -- 用于指定新闻分类编号
)
AS
BEGIN
SELECT a.IT_ID
FROM reglogin.dbo.InfoTable AS a
WHERE ( SELECT COUNT(b.IT_ID)
FROM reglogin.dbo.InfoTable AS b
WHERE b.IT_ID > a.IT_ID
AND b.newClsCode = '102005'
AND b.isMake > 0
AND b.isDel = 0
AND b.isCheck = 1 ) < @Count
AND a.newClsCode LIKE @newClsCode + '%'
AND a.isMake > 0
AND a.isDel = 0
AND a.isCheck = 1
ORDER BY a.IT_ID DESC
END
-- 测试存储过程
EXEC OrderForm.dbo.proc_GetNewsSourceOfID 5, '102005'
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接