【发布时间】:2013-08-25 05:25:52
【问题描述】:
我正在开发一个批量插入数据的应用程序,以减少我想使用表值参数的查询数量。
例子:
var sql = require('node-sqlserver');
var connectionString = 'Driver={SQL Server Native Client 11.0};server=tcp:serverName.database.windows.net,1433;UID=user@serverName;PWD=password;Database={databaseName};Encrypt=yes;Connection Timeout=30;';
sql.open(connectionString, function(err, conn) {
if(err) {
return console.error('could not connect to sql', err);
}
var tableValuedObject = ???;
var query = 'usp_InsertSomeTable ?';
conn.query(query, tableValuedObject, function(err, result) {
if(err) {
return console.error('error running insert', err);
}
});
});
usp_InsertSomeTable 定义为
CREATE PROCEDURE usp_InsertSomeTable
@TVP SomeTableType READONLY
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO SomeTable (Data) SELECT Data FROM @TVP;
END
我的表值对象定义为
CREATE TYPE SomeTableType AS TABLE
(
Data VARCHAR(50)
);
Node-SqlServer 项目中 JavaScript 对象应该具有或尚未实现的结构是什么?
编辑 1:
使用var tableValuedObject = { Data: 'Hello World' }; 会产生错误:
node-sqlserver\lib\sql.js:3254: Uncaught Error: [msnodesql] Invalid parameter(s) passed to function query or queryRaw.
编辑 2:
使用var tableValuedObject = [{ Data: 'Hello World'}]; 会产生错误:
error running query { [Error: IMNOD: [msnodesql] Parameter 1: Invalid parameter type] sqlstate: 'IMNOD', code: -1 }
【问题讨论】:
标签: sql node.js azure azure-sql-database azure-mobile-services