SQLServer2000的用户定义函数,如何用VB6自动创建?

奋斗一生的程序员 2016-07-03 04:14:33
SQLServer2000,有用户定义的函数功能,极大的优化了查询,提升数据库性能。
而VB6在运行时,可以自动创建数据表,更改表结构等。但是,如何自动创建SQLServer2000的用户定义函数?
而不用远程客户服务器,手工创建用户定义函数。

请大家提供创建语句,多谢了。
...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-07-05
  • 打赏
  • 举报
回复
赵4老师 2016-07-04
  • 打赏
  • 举报
回复
确定连接数据库使用的用户有相应权限。 SQL Server 构架 SQL 用户定义函数 编程语言中的函数是用于封装经常执行的逻辑的子例程。任何代码若必须执行函数所包含的逻辑,都可以调用该函数,而不必重复所有的函数逻辑。 Microsoft® SQL Server™ 2000 支持两种函数类型: 内置函数 按 Transact-SQL 参考中定义的方式运行且不能修改。只有使用 Transact-SQL 参考中所定义语法的 Transact-SQL 语句才能引用这类函数。有关这些内置函数的更多信息,请参见使用函数。 用户定义函数 使您得以用 CREATE FUNCTION 语句定义自己的 Transact-SQL 函数。有关这些内置函数的更多信息,请参见用户定义函数。 用户定义函数接受零个或更多的输入参数,并返回单值。一些用户定义函数返回单个的标量数据值,如 int、char 或 decimal 值。 例如,下面的语句创建一个返回 decimal 的简单函数: CREATE FUNCTION CubicVolume -- Input dimensions in centimeters. (@CubeLength decimal(4,1), @CubeWidth decimal(4,1), @CubeHeight decimal(4,1) ) RETURNS decimal(12,3) -- Cubic Centimeters. AS BEGIN RETURN ( @CubeLength * @CubeWidth * @CubeHeight ) END 然后可以在允许整型表达式的任何地方(如表的计算列中)使用该函数: CREATE TABLE Bricks ( BrickPartNmbr int PRIMARY KEY, BrickColor nchar(20), BrickHeight decimal(4,1), BrickLength decimal(4,1), BrickWidth decimal(4,1), BrickVolume AS ( dbo.CubicVolume(BrickHeight, BrickLength, BrickWidth) ) ) SQL Server 2000 还支持返回 table 数据类型的用户定义函数: 该函数可声明内部 table 变量,将行插入该变量,然后将该变量作为返回值返回。 一类称为内嵌函数的用户定义函数,将 SELECT 语句的结果集作为变量类型 table 返回。 这些函数可用在能指定表表达式的地方。有关 table 数据类型的更多信息,请参见使用特殊数据。 返回 table 的用户定义函数可以是替代视图的强大方式。返回 table 的用户定义函数可用在 Transact-SQL 查询中允许表或视图表达式的地方。视图受限于单个 SELECT 语句,而用户定义函数可包含附加的语句,使函数所包含的逻辑比视图可能具有的逻辑更强大。 返回 table 的用户定义函数还可替换返回单个结果集的存储过程。由用户定义函数返回的 table 可在 Transact-SQL 语句的 FROM 子句中引用,而返回结果集的存储过程则不能。例如,fn_EmployeesInDept 是返回 table 的用户定义函数,可由 SELECT 语句唤醒调用: SELECT * FROM tb_Employees AS E, dbo.fn_EmployeesInDept('shipping') AS EID WHERE E.EmployeeID = EID.EmployeeID 下面的语句在 Northwind 数据库中创建将要返回 table 的函数: CREATE FUNCTION LargeOrderShippers ( @FreightParm money ) RETURNS @OrderShipperTab TABLE ( ShipperID int, ShipperName nvarchar(80), OrderID int, ShippedDate datetime, Freight money ) AS BEGIN INSERT @OrderShipperTab SELECT S.ShipperID, S.CompanyName, O.OrderID, O.ShippedDate, O.Freight FROM Shippers AS S INNER JOIN Orders AS O ON (S.ShipperID = O.ShipVia) WHERE O.Freight > @FreightParm RETURN END 在这个函数中,返回的本地变量名是 @OrderShipperTab。函数中的语句在 @OrderShipperTab 变量中插入行,以生成由该函数返回的 table 结果。外部语句唤醒调用该函数以引用由该函数返回的 table: SELECT * FROM LargeOrderShippers( $500 ) ©1988-2000 Microsoft Corporation。保留所有权利。
  • 打赏
  • 举报
回复
我的结帖率达到了100%,热烈祝贺。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧