我正在尝试执行从文件中读取的 sql 脚本;但是,当我去执行脚本时,我遇到了异常:
Column, parameter, or variable #1: Cannot find data type dbo.ExistingTableType.
Must declare the table variable "@existingTableType".
Parameter or variable '@existingTableType' has an invalid data type.
我尝试通过复制文本并在 SQL Server Management Studio 中运行它来测试脚本,它确实运行成功。此外,其他脚本能够运行,但由于某些原因,那些以用户定义的表类型作为参数的脚本不能运行。下面是一个简单的例子:
C#
string script = scriptFile.OpenText().ReadToEnd();
SqlConnection connection = new SqlConnection(connectionString);
Server server = new Server(new ServerConnection(connection));
server.ConnectionContext.StatementTimeout = 100;
server.ConnectionContext.ExecuteNonQuery(script);
SQL
CREATE PROCEDURE [dbo].[failedStoredProcedure]
(
@existingTableType dbo.ExistingTableType READONLY
)
AS
-- Do something here
GO
完成的其他测试:
- 在连接字符串中尝试了另一个用户。
编辑:此外,当脚本运行时,当对象确实存在时,它会返回“无效的对象名称 {x}”。