2013-06-12 30 views
8

Tôi tự hỏi liệu có cách nào để sử dụng giá trị cho tập dữ liệu trong truy vấn tiếp theo hay không.
Dưới đây là một ví dụ:Powershell SqlCmd - Sử dụng giá trị kết quả mà không xác định biến

trình:

$Result = Invoke-Sqlcmd -query "SELECT Id, FirstName, LastName FROM Person" 
foreach($item in $Result){ 
    $ID= $item.Id 
    $SaleResults = Invoke-Sqlcmd -query "SELECT * FROM Sales WHERE Salesperson = $ID" 
} 

không hoạt động:

foreach($item in $Result){ 
    $SaleResults = Invoke-Sqlcmd -query "SELECT * FROM Sales WHERE Salesperson=$Item.Id" 
} 

Ví dụ thứ hai thất bại bởi vì nó được sử dụng $ Item.Id như là một chuỗi thay uniqueidentifier đó, do đó lỗi: "Chuyển đổi không thành công khi chuyển đổi từ chuỗi ký tự thành uniqueidentifier."

Bất kỳ ý tưởng nào về cách sử dụng các giá trị này với loại chính xác của chúng, mà không tạo biến riêng biệt?

Trả lời

9

Bạn cần sử dụng $ ($ Item.ID) trong chuỗi được trích dẫn kép của bạn và chuỗi này sẽ hoạt động.

+0

Đã làm việc tuyệt vời! Cảm ơn bạn! – KickinMhl

Các vấn đề liên quan