【问题标题】:Easy way of creating a stored procedure创建存储过程的简单方法
【发布时间】:2016-12-24 16:38:38
【问题描述】:

我想问一下创建存储过程的技巧。

当我尝试创建过程时,我必须在 @ 符号的开头写字段 - 所以我没有简单的方法来做到这一点?

像这样

CREATE PROCEDURE [dbo].[Insert_Vehicle_Procedure]
    (@VehiclePlateNo varchar(max),
     @Variety varchar(max)
    )
AS
    SET NOCOUNT OFF

    INSERT INTO [dbo].[Vehicles] ([VehiclePlateNo], [Variety])
    VALUES (@VehiclePlateNo, @Variety)

有时要写数百个区域真的很烦人:)

【问题讨论】:

  • 这个存储过程已经很简洁了,你到底想在这里“优化”什么?我想你可以让你的变量/实体/等。名称更短,但你会很快发现收益递减,因为在几个字符之后,这些已经简洁的名称将不再有效地描述自己。如果您只是不想输入代码,那么您可能正在寻找一些代码生成工具。甚至是国产的。您可以查询表结构并从中发出您的过程文本。
  • 顺便说一句 varchar 没有长度与 varchar(1) 相同。 SSMS 工具包有一个帮助程序来为表创建简单的 crud 过程。
  • 我知道@MartinSmith 我写的只是一个例子。
  • @David 我喜欢写代码,但有时时间不明显,我必须快速完成。所以我想问有什么工具可以让它更快。所以对我来说快写作意味着提高优化。不是吗? :)

标签: sql stored-procedures


【解决方案1】:

为什么不自己编写一个 SQL 脚本,通过查询 systables 和 syscolumns 系统表来发出存储过程参数数据脚本块。

【讨论】:

  • 你能解释清楚一点吗?我想我缺少这方面的信息。如果您能在这方面提供帮助,我想提高我的数据库知识。
  • 一个表的所有列名和数据类型都保存在 SQL Server syscolumns 表中。如果您编写了一个从 syscolumns 表中选择数据的查询(即为目标表中的每个字段选择一行),您可以轻松地获取 Select 语句来编写一行文本,例如“@VehiclePlateNo varchar(max)” systables 和 systypes 中的数据。
猜你喜欢
  • 2016-05-20
  • 1970-01-01
  • 2018-07-15
  • 2010-09-15
  • 1970-01-01
  • 2012-07-26
  • 1970-01-01
  • 2015-09-10
  • 2016-05-12
相关资源
最近更新 更多