代码之家  ›  专栏  ›  技术社区  ›  madlan

使用参数创建用户(VB.net)

  •  0
  • madlan  · 技术社区  · 14 年前

    exec sp_executesql N'CREATE USER @LoginName 
                            FOR LOGIN @LoginName;',
                       N'@LoginName varchar(5)', @LoginName='myuser'
    

    下面是生成上述内容的代码:

    Dim myCommand As SqlCommand = New SqlCommand("CREATE USER @LoginName 
                                                     FOR LOGIN @LoginName;", 
                                                 ClassDatabaseConnection.CustomInstance)
    myCommand.CommandType = CommandType.Text
    myCommand.Parameters.Add("@LoginName", SqlDbType.VarChar).Value = LoginName
    myCommand.ExecuteScalar()
    

    Incorrect syntax near '@LoginName'.
    

    我认为这是由于作为VarChar传递的参数导致“MyUser”而不是MyUser

    我不能用sql参数来做这个吗?

    2 回复  |  直到 14 年前
        1
  •  4
  •   Brad    14 年前

    不能将参数与 Create User 陈述。既然你已经在VB中了,试着拼凑一个语句。

    Dim myCommand As SqlCommand = New SqlCommand("CREATE USER " + LoginName +
                                                    " FOR LOGIN " + LoginName + ";", 
                                                 ClassDatabaseConnection.CustomInstance)
    myCommand.CommandType = CommandType.Text
    myCommand.ExecuteScalar()
    
        2
  •  2
  •   gbn    14 年前

    如前所述,不能参数化创建登录名。

    SMO Login.Create