sql-server - access-SQL 传递查询(创建 SP)错误

标签 sql-server ms-access vba pass-through

我正在尝试使用 MS Access 2010 在 SQL Server 2012 中使用直通查询创建存储过程。

IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = N'SCHtest') 
EXECUTE sp_executesql N'create schema SCHtest'
GO
CREATE PROCEDURE [SCHtest].[SQLLrtest_2]
AS
BEGIN
INSERT INTO [dbo].[UploadTest] (.....)

在 Access 中我得到这个错误:

Run time error '3146':
[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax nera 'GO'. (#102)
[Microsoft][ODBC SQL Server Driver][SQL Server]'CREATE/ALTER PROCEDURE' must be 
the first statement in a query batch. (#111)

如果我将代码复制粘贴到 SQL Server - 一切正常!

如错误中所写,如果我删除 IF 语句和 GO,则在 Access 和 SQL 中都有效。如何在不删除 IF 语句的情况下使其工作?

非常感谢任何帮助!

埃德加拉斯

最佳答案

如何设置这样的东西:

IF NOT EXISTS (SELECT *
               FROM   sys.schemas
               WHERE  name = N'testx')
  EXECUTE Sp_executesql
    N'create schema testx'

DECLARE @sql VARCHAR(max)

SELECT @sql = '
CREATE PROCEDURE testx
AS
INSERT INTO [dbo].[table_1] (atext) values (''abc'') '

EXEC (@sql)
EXEC Testx 

引用:http://ask.sqlservercentral.com/questions/4420/alternative-to-go-for-batching-sql-statements.html

在 MS Access 2010 中测试

关于sql-server - access-SQL 传递查询(创建 SP)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12197870/

相关文章:

ms-access - 如何重命名Access DB中的主键值

Excel 公式/VBA 代码仅对包含值的单元格求和(跳过任何包含公式的单元格)?

sql-server - 连接的数据库服务器不支持从 'uniqueidentifier' 到 'int' 的转换

c# - 如何使用 C# 向表中的 GUID 列插入空值?

javascript - 如何将 JavaScript 结果从本地文件发送到 VBA Webbrowser 控件

excel - 为什么我的 Visual Basic excel 代码在我的单元格中返回 #value

excel - 访问 range.areas(2) 中的值

sql-server - 我可以强制将报告放入一个长的可滚动页面吗

mysql - 如何使同一个表但不同列的值共享行?

sql - 使用 Union 函数创建更新查询?