---
schema_version: "1"
id: 4b2c7b8b8a1b54eb1f21aff42552b764af5c5e3bbf8bbf1931be6c53d6d11475
title: เรียกใช้ SQL เริ่มต้น
collection: tableau
version: next
locale: th-th
portal_url: https://docs.salesforce.com/tableau/next/th-th/public/desktop/connect_basic_initialsql.md
canonical_url: https://help.tableau.com/v0.0/public/desktop/th-th/connect_basic_initialsql.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 1378fbb7c18718c27cafed74ae322d9d26128d580a711ecf2bb1d6749a2e6822
description: Run an initial SQL command when connecting to a database, including parameters and deferred execution.
---
[ข้ามไปยังเนื้อหาหลัก](#main-content)

# เรียกใช้ SQL เริ่มต้น

**หมายเหตุ**: Tableau Prep Builder เวอร์ชัน 2019.2.2 และใหม่กว่ารองรับการใช้ SQL เริ่มต้น แต่ยังไม่รองรับตัวเลือกเดียวกันทั้งหมดที่รองรับโดย Tableau Desktop หากต้องการข้อมูลเกี่ยวกับการใช้ SQL เริ่มต้นร่วมกับ Tableau Prep Builder โปรดดู[ใช้ SQL เริ่มต้นเพื่อค้นหาการเชื่อมต่อของคุณ](https://help.tableau.com/current/prep/th-th/prep_connect.htm#initial_SQL)ในความช่วยเหลือของ Salesforce สำหรับ Tableau Prep Builder

เมื่อเชื่อมต่อกับฐานข้อมูลบางส่วน คุณจะสามารถระบุคำสั่ง SQL เริ่มต้นที่จะทำงานหรือใช้ค่าที่แคชเมื่อมีการเชื่อมต่อกับฐานข้อมูลได้ ตัวอย่างเช่น เมื่อคุณเปิดเวิร์กบุ๊ก รีเฟรชการแยกข้อมูล ลงชื่อเข้าใช้ Tableau Server หรือเผยแพร่ไปยัง Tableau Server

**หมายเหตุ:** SQL เริ่มต้นนี้แตกต่างจากการเชื่อมต่อ SQL แบบปรับแต่งเอง การเชื่อมต่อ SQL แบบปรับแต่งเองจะกำหนดความสัมพันธ์ (หรือตาราง) ที่จะออกคำสั่งค้นหา หากต้องการข้อมูลเพิ่มเติม โปรดดู [เชื่อมต่อกับการค้นหา SQL แบบปรับแต่งเอง](https://help.tableau.com/current/pro/desktop/th-th/customsql.htm)

คุณสามารถใช้คำสั่งนี้เพื่อ:

- ตั้งค่าตารางชั่วคราวเพื่อใช้ในระหว่างเซสชั่น
- ตั้งค่าสภาพแวดล้อมข้อมูลที่กำหนดเอง

คุณมีตัวเลือกในการเพิ่มคำสั่ง SQL เริ่มต้นในกล่องโต้ตอบ “การเชื่อมต่อเซิร์ฟเวอร์” หรือบนหน้า “แหล่งข้อมูล”

หมายเหตุ: หากแหล่งข้อมูลของคุณรองรับการเรียกใช้คำสั่ง SQL เริ่มต้น ลิงก์ SQL เริ่มต้นจะปรากฏที่มุมล่างซ้ายของกล่องโต้ตอบ “การเชื่อมต่อเซิร์ฟเวอร์” หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับแหล่งข้อมูลของคุณ โปรดดู [ตัวเชื่อมต่อที่รองรับ](https://help.tableau.com/current/pro/desktop/th-th/exampleconnections_overview.htm)

## การใช้ SQL เริ่มต้น

1. ในกล่องโต้ตอบ “การเชื่อมต่อเซิร์ฟเวอร์” ให้คลิก SQL เริ่มต้น หรือในหน้า “แหล่งข้อมูล” ให้เลือกข้อมูล > SQL เริ่มต้น หรือข้อมูล > การกำหนดช่วงการค้นหาและ SQL เริ่มต้น โดยขึ้นอยู่กับฐานข้อมูลที่คุณเชื่อมต่อ
2. ป้อนคำสั่ง SQL ลงในกล่องโต้ตอบ “SQL เริ่มต้น” คุณสามารถใช้เมนูดรอปดาวน์แทรกเพื่อส่งพารามิเตอร์ไปยังแหล่งข้อมูลของคุณได้
    
    ![การตั้งค่า SQL เริ่มต้นที่มีฟิลด์ข้อความสำหรับป้อนคำสั่ง SQL](/tableau/next/th-th/public/desktop/th-th/Img/connect_basic_initialsql.png)

**หมายเหตุ:** Tableau ไม่ได้ตรวจสอบคำสั่งเพื่อหาข้อผิดพลาด คำสั่ง SQL นี้จะส่งไปยังฐานข้อมูลเมื่อคุณเชื่อมต่อ

ใบอนุญาตซอฟต์แวร์ของคุณอาจจำกัดไม่ให้คุณใช้ SQL เริ่มต้นกับการเชื่อมต่อของคุณ หากคุณเผยแพร่ไปยัง Tableau Server เซิร์ฟเวอร์ต้องได้รับการกำหนดค่าให้อนุญาตสำหรับคำสั่ง SQL เริ่มต้น โดยค่าเริ่มต้นแล้ว ซอฟต์แวร์เซิร์ฟเวอร์จะได้รับการกำหนดค่าเพื่ออนุญาตให้คำสั่งเหล่านี้ทำงานได้เมื่อโหลดเวิร์กบุ๊กในเว็บเบราว์เซอร์

ผู้ดูแลสามารถกำหนดค่าเซิร์ฟเวอร์ให้ละเว้นคำสั่ง SQL เริ่มต้นโดยใช้คำสั่ง `tsm configuration set`:

`tsm configuration set -k vizqlserver.initialsql.disabled -v true`

หากเซิร์ฟเวอร์ไม่อนุญาตคำสั่ง SQL เริ่มต้น เวิร์กบุ๊กจะเปิดขึ้น แต่จะไม่มีการส่งคำสั่ง SQL เริ่มต้น

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง `tsm configuration set` โปรดดู[ความช่วยเหลือของ Tableau Server](https://help.tableau.com/current/server/th-th/cli_configuration_tsm.htm#TSMSet)

## พารามิเตอร์ในคำสั่ง SQL เริ่มต้น

คุณสามารถส่งพารามิเตอร์ไปยังแหล่งข้อมูลของคุณในคำสั่ง SQL เริ่มต้นได้ รายการต่อไปนี้มีประโยชน์หลายประการในการใช้พารามิเตอร์ในคำสั่ง SQL เริ่มต้น

- คุณสามารถกำหนดค่าการแอบอ้างบุคคลอื่นโดยใช้พารามิเตอร์ TableauServerUserr หรือ TableauServerUserFull ได้
- หากแหล่งข้อมูลของคุณรองรับ คุณสามารถตั้งค่าการรักษาความปลอดภัยระดับแถว (เช่น สำหรับ Oracle VPD หรือ SAP Sybase ASE) ได้ เพื่อให้แน่ใจว่าผู้ใช้จะเห็นเฉพาะข้อมูลที่ได้รับอนุญาตให้เห็นเท่านั้น
- คุณสามารถให้รายละเอียดเพิ่มเติมในการบันทึกได้ ตัวอย่างเช่น เวอร์ชัน Tableau หรือชื่อเวิร์กบุ๊ก

พารามิเตอร์ต่อไปนี้ได้รับการรองรับในคำสั่ง SQL เริ่มต้น:

<table class="table--plain"><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><span class="uicontrol">พารามิเตอร์</span></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><span class="uicontrol">คำอธิบาย</span></td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><span class="uicontrol">ตัวอย่างค่าที่ส่งคืน</span></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><span class="uicontrol">TableauServerUser</span></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">ชื่อผู้ใช้ของผู้ใช้เซิร์ฟเวอร์ปัจจุบัน ใช้เมื่อตั้งค่าการแอบอ้างบุคคลอื่นบนเซิร์ฟเวอร์ ส่งคืนสตริงว่างหากผู้ใช้ไม่ได้ลงชื่อเข้าใช้ Tableau Server</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">jsmith</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><span class="uicontrol">TableauServerUserFull</span></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">ชื่อผู้ใช้และโดเมนของผู้ใช้เซิร์ฟเวอร์ปัจจุบัน ใช้เมื่อตั้งค่าการแอบอ้างบุคคลอื่นบนเซิร์ฟเวอร์ ส่งคืนสตริงว่างหากผู้ใช้ไม่ได้ลงชื่อเข้าใช้ Tableau Server</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">domain.lan\jsmith</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><span class="uicontrol">แอปTableau</span></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">ชื่อของแอปพลิเคชัน Tableau</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><p><span class="mc-variable Variables.TabsProductDesktop variable">Tableau Desktop</span> Professional</p><p>Tableau Server</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><span class="uicontrol">เวอร์ชันTableau</span></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">เวอร์ชันของแอปพลิเคชัน Tableau</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">9.3</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1"><span class="uicontrol">ชื่อเวิร์กบุ๊ก</span></td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">ชื่อของเวิร์กบุ๊ก Tableau ใช้ในเวิร์กบุ๊กที่มีแหล่งข้อมูลแบบฝังเท่านั้น</td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1">การวิเคราะห์ทางการเงิน</td></tr></tbody></table>

> [!WARNING]
> 
> **คำเตือน:** Tableau Desktop ไม่มีโดเมน คุณสามารถรวมไว้ได้หากคุณไม่ได้ใช้การมอบสิทธิ์และคุณตั้งค่า tsm configuration set -k DelegationUseFullDomainName=-v true--force-keys

ตัวอย่างต่อไปนี้จะแสดงวิธีต่างๆ ที่คุณสามารถใช้พารามิเตอร์ในคำสั่ง SQL เริ่มต้นได้

- ตัวอย่างนี้จะตั้งค่าบริบทการรักษาความปลอดภัยบน Microsoft SQL Server:
    
    `EXECUTE AS USER = [TableauServerUser] WITH NO REVERT;`
- ตัวอย่างนี้แสดงให้เห็นว่าบนแหล่งข้อมูล DataStax คุณสามารถใช้พารามิเตอร์เพื่อเพิ่มรายละเอียดในการบันทึกหรือตั้งค่าตัวแปรเซสชันเพื่อติดตามข้อมูล
    
    `SET TABLEAUVERSION [TableauVersion];`
- คุณสามารถใช้ตัวอย่างนี้เพื่อช่วยตั้งค่าการรักษาความปลอดภัยระดับแถวสำหรับ Oracle VPD ได้:
    
    `begin`
    
     `DBMS_SESSION.SET_IDENTIFIER([TableauServerUser]);`
    
    `end;`
    
    หมายเหตุ: การบล็อกของ Oracle PL/SQL กำหนดให้มีเซมิโคลอนต่อท้ายเพื่อยุติการบล็อก ศึกษาเอกสารของ Oracleเพื่อดูไวยากรณ์ที่เหมาะสม

### เลื่อนการดำเนินการกับเซิร์ฟเวอร์

คุณสามารถเลื่อนคำสั่ง SQL เริ่มต้นเพื่อให้มีการดำเนินการคำสั่งนี้เฉพาะบนเซิร์ฟเวอร์ได้ เหตุผลหนึ่งในการเลื่อนการดำเนินการกับเซิร์ฟเวอร์คือในกรณีที่คุณไม่ได้รับอนุญาตให้ดำเนินการคำสั่งที่ตั้งค่าการแอบอ้างเป็นบุคคลอื่น ใช้แท็ก <เซิร์ฟเวอร์เท่านั้น></เซิร์ฟเวอร์เท่านั้น> เพื่อใส่คำสั่งที่จะดำเนินการบนเซิร์ฟเวอร์เท่านั้น

ตัวอย่าง:

CREATE TEMP TABLE TempTable(x varchar(25));
INSERT INTO TempTable VALUES (1);
<ServerOnly>INSERT INTO TempTable Values(2);</ServerOnly>

### การรักษาความปลอดภัยและการแอบอ้างเป็นบุคคลอื่น

เมื่อคุณใช้พารามิเตอร์ TableauServerUser หรือ TableauServerUserFull ในคำสั่ง SQL เริ่มต้น คุณจะสร้างการเชื่อมต่อเฉพาะที่ใช้ร่วมกันกับผู้ใช้รายอื่นไม่ได้ พารามิเตอร์นี้จะจำกัดการใช้แคชร่วมกัน ซึ่งสามารถเสริมการรักษาความปลอดภัย แต่อาจทำให้ประสิทธิภาพการทำงานช้าลงได้

## แก้ไขปัญหา 'สร้างตาราง' สำหรับการเชื่อมต่อ MySQL และ Oracle

#### สำหรับการเชื่อมต่อ MySQL ตารางจะไม่แสดงหลังจากใช้ SQL เริ่มต้นเพื่อสร้างตาราง

หลังจากที่เชื่อมต่อกับ MySQL และเรียกใช้คำสั่ง SQL เริ่มต้น ตารางอาจไม่แสดงเนื่องจากวิธีที่ Tableau สร้างการค้นหาขึ้นมา:

CREATE TABLE TestV1.testtable77(testID int);

ในการแก้ไขปัญหานี้ ให้เพิ่ม `IF NOT EXISTS` ไปยังคำสั่ง SQL:

CREATE TABLE IF NOT EXISTS TestV1.TestTable(testID int);

#### สำหรับการเชื่อมต่อ Oracle การใช้ SQL เริ่มต้นเพื่อสร้างตารางจะทำให้ Tableau หยุดทำงาน

หลังจากที่เชื่อมต่อกับ Oracle และเรียกใช้คำสั่ง SQL เริ่มต้น Tableau จะหยุดชะงักพร้อมกับมีรูปวงล้อหมุนเนื่องจากวิธีที่ Tableau สร้างการค้นหาขึ้นมา:

CREATE TABLE TEST\_TABLE (TESTid int)

ในการแก้ไขปัญหานี้ ให้ตรวจสอบคำสั่ง SQL ต่อไปนี้:

BEGIN
EXECUTE IMMEDIATE 'create table test\_table(testID int)';
EXCEPTION
WHEN OTHERS THEN NULL;
END;