READONLY、、cursor、、VARYING

时间:2021-07-26 06:02:44

针对 Transact-SQL 过程的准则:
所有 Transact-SQL 数据类型都可以用作参数。
您可以使用用户定义的表类型创建表值参数。
表值参数只能是 INPUT 参数,并且这些参数必须带有 READONLY 关键字。
cursor 数据类型只能是 OUTPUT 参数,并且必须带有 VARYING 关键字。

针对 CLR 过程的准则:
托管代码中具有等效值的所有本机 SQL Server 数据类型都可以用作参数。有关 CLR 类型与 SQL Server 系统数据类型之间关系的详细信息,请参阅 映射 CLR 参数数据。
表值或 cursor 数据类型不能用作参数。
如果参数的数据类型为 CLR 用户定义类型,则必须对此类型有 EXECUTE 权限。

=========================================================================================

(首先声明一下,我这是从别处抄下来的,虽然我的行为恶劣,不光彩,但是,希望答案对你有所帮助)

存储过程是指封装了可重用代码的模块或例程。存储过程可以接受输入参数、向客户端返回表格或标量结果和消息、调用数据定义语言 (DDL) 和数据操作语言 (DML) 语句,然后返回输出参数。在 SQL Server 2005 中,存储过程有两种类型:Transact-SQL 或 CLR。

Transact-SQL
Transact-SQL 存储过程是指保存的 Transact-SQL 语句集合,可以接受和返回用户提供的参数。例如,存储过程中可能包含根据客户端应用程序提供的信息在一个或多个表中插入新行所需的语句。存储过程也可能从数据库向客户端应用程序返回数据。

CLR
CLR 存储过程是指对 Microsoft .NET Framework 公共语言运行时 (CLR) 方法的引用,可以接受和返回用户提供的参数。它们在 .NET Framework 程序集中是作为类的公共静态方法实现的。