4

我有一个 ms sql 表 PRODUCTS。它有三列 ID (int),NAME (nvarchar),TSTAMP (timestamp)

我想获取新插入行的 id 和时间戳(如多选 scope_identity)。我可以在sql中实现如下:

INSERT INTO PRODUCTS (NAME)
OUTPUT inserted.ID,inserted.TSTAMP
VALUES ('Example Product')

但是我如何在插入时使用 sqlclient.sqlcommad 在 vb.net 中读取它?我必须使用 sqlcommand 的哪个功能以及如何使用?ExecuteReader 也许?

4

1 回答 1

2

使用SqlCommand的ExecuteReader()方法与使用SELECT的工作方式相同。

OUTPUT 子句的工作方式类似于 SELECT 语句,但在 INSERT、UPDATE 和 DELETE 命令中的用法不同

这是一个示例代码。试试看。

Dim connString As String = "server=Test; database=Test;" + _
                           "uid=sa; pwd="
Dim conn As New SqlConnection(connString)

Dim cmdString As String = "INSERT INTO PRODUCTS (NAME) " + _
                          "OUTPUT inserted.ID,inserted.TSTAMP " + _
                          "VALUES ('Example Product')"
Dim cmd As New SqlCommand(cmdString, conn)
conn.Open()
Dim reader As SqlDataReader = cmd.ExecuteReader()
conn.Close()

这里有一些链接

从 C# 运行 OUTPUT 子句

在 SQL Server 2008 中实现 OUTPUT 子句

于 2012-09-04T07:31:45.637 回答