一尘不染

使用C#使用关键字GO运行.sql语句?

sql

我有以下

USE [TESTDB]
CREATE FUNCTION dbo.Function1 (@input VARCHAR(250)) 
RETURNS VARCHAR(250) 
AS 
BEGIN   
 --do work here
END

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON

CREATE FUNCTION dbo.Function2 (@input VARCHAR(250)) 
RETURNS VARCHAR(250) 
AS BEGIN   
 --do work here
END

我尝试使用C#中的SQL连接运行此命令,但收到错误消息:

CREATE FUNCTION’必须是查询批处理中的第一条语句。必须声明标量变量“ @input”。

如何在C#中运行它?


阅读 227

收藏
2021-03-08

共1个答案

一尘不染

GO不是SQL概念;它在语法上根本不存在。

SSMS通过解析SQL并识别GO(和GO {integer})用法来允许它,并将 您的命令分为几部分
;然后,它们将这些片段作为独立的命令一个接一个地发布。这样做完全是由SSMS而不是SQL Server驱动程序或SQL
Server数据库/服务器来完成的。SqlClient(ADO.NET提供程序)没有内置模拟SSMS的功能,因此:您需要在自己的代码中实现它。也许更简单:首先将代码作为单独的命令编写。

2021-03-08