如何将表从SQL Server导出到CSV文件,但是还有一个附加列?

时间:2014-10-06 19:36:49

标签: sql-server data-export

我可以将简单数据从SQL Server导出到CSV文件而不会出现问题。这是一个特例。除了从该表导出必填字段外,我还需要导出一个附加字段,密码]。 SQL Server上的表中不存在此字段。该字段是操纵studentId字段的结果。例如,如果StudId11111,则其密码为'XDUBS'

        'assume the connection works 
        cmd1.CommandText = "select studentID from vwTEST"
        cmd1.ExecuteNonQuery()
        da.Fill(dt)

        For i As Integer = 0 To dt.Rows.Count - 1
            strStudentID = dt.Rows(i).Item(0)
            enc = encrypt(strStudentID)
            updatePW(strStudentID, enc)
        Next

我调用encrypt()将studentID转换为pw并调用updatePW()来更新表学生,但我不允许将[pw]字段添加到表中。这就是为什么我不能这样做,即使它有效!

2 个答案:

答案 0 :(得分:0)

  1. 临时表(创建表#name ...);
  2. 使用用户自定义函数(UDF)计算密码。

答案 1 :(得分:0)

你提到了术语"虚拟表"。这是描述数据库视图的一种方式。

  1. 创建一个视图,作为数据导出过程的来源(而不是您现在要导出的表格):

    CREATE VIEW …
    AS
    SELECT … /* all columns from the base table that you want to export */,
           GetPasswordFrom(StudentId) AS Password
    FROM TableThatYouAreExportingNow
    

    GetPasswordFrom是一些用户定义的函数(UDF),它从其参数(StudentId)派生密码。

  2. 现在导出该视图而不是TableThatYouAreExportingNow表。