【发布时间】:2013-12-13 23:59:50
【问题描述】:
该脚本在 SQL Management Studio 上运行良好,但在程序上却不行。脚本文件检查某些存储过程是否存在,如果存在则删除它们,然后再次声明它们,如下所示:
IF EXISTS(SELECT * FROM sys.objects WHERE type='P' AND name = 'myProc1')
DROP PROCEDURE myProc1
GO
CREATE PROCEDURE myProc1
AS
BEGIN
SELECT
[Field1] = ((*Some numeric value*)-(*Some numeric value*)),
[Field2] = ((*Some numeric value*)-(*Some numeric value*)),
[Field3] = ((*Some numeric value*)-(*Some numeric value*))
FROM ...
WHERE ...
END
GO
IF EXISTS(SELECT * FROM sys.objects WHERE type='P' AND name = 'myProc2')
DROP PROCEDURE myProc2
GO
CREATE PROCEDURE myProc2
AS
BEGIN
SELECT * FROM Table2
END
GO
IF EXISTS(SELECT * FROM sys.objects WHERE type='P' AND name = 'myProc3')
DROP PROCEDURE myProc3
GO
CREATE PROCEDURE myProc3
AS
BEGIN
SELECT * FROM Table3
END
GO
当我尝试在 VB.NET 上运行它时,我尝试了这个:
sql.CommandText = File.OpenText("C:\test.sql").ReadToEnd()
sql.CommandType = CommandType.Text
sql.Connection = connects.con
sql.ExecuteNonQuery()
我得到这个错误:
Incorrect syntax near 'GO'.
Incorrect syntax near 'GO'.
Incorrect syntax near 'GO'.
Incorrect syntax near ')'.
Incorrect syntax near '-'.
Incorrect syntax near ')'.
Incorrect syntax near '-'.
Incorrect syntax near ')'.
Incorrect syntax near '-'.
Incorrect syntax near '�'.
所以至少有 3 个 GO,3 个操作,甚至是一些未知字符。
关于我做错了什么有什么想法吗?
【问题讨论】:
标签: sql vb.net sql-server-2008 stored-procedures