由于SQL Server没有为管理工作室自动生成的脚本的简单批处理命令行执行程序,因此我创建了一个。
当delphi ado语法和SQL Server语法不一致时会产生问题(但它的相同之处)。
那么如何,go
我替换了;
现在当我宣布存储过程改变时,我碰到了一堵砖墙。
我正在运行的脚本是:
ALTER Procedure [dbo].[procName]
as
Declare @param int
我得到的错误是:
参数来自错误的类型, 超出范围或与之碰撞 另一个。
(我的免费翻译)
问题:
感谢。
编辑:要求使用udl文件登录数据库。
可能是德尔福遇到了@?
的问题答案 0 :(得分:3)
由于SQL Server没有 简单的批处理命令行执行程序 自动生成的脚本 来自管理工作室,我创建了一个。
你知道SQLCMD ??看起来像是一个命令行实用程序来执行SQL脚本......还有:SQLCMD实用程序还有许多其他增强功能,这些功能超出了SSMS中的T-SQL脚本所能做的。
同时退房:
答案 1 :(得分:1)
不确定上面的SQL示例,但存储过程实际上是否有任何参数,或者您是否正在调用@param体内的变量?通常的语法是:
ALTER Procedure [dbo].[procName]
(<@params here>)
AS
<body + variables here>
答案 2 :(得分:0)
删除了该组件并从
更改了代码ado.open;
到
ado.execute; //或类似的东西
解决了它。