sys.fn_get_sql (Transact-sql)

sql deyimi için belirtilen sql tanıtıcı metin döndürür.

Önemli notÖnemli

Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın. Kullanım sys.dm_exec_sql_textyerine. Daha fazla bilgi için, bkz. sys.dm_exec_sql_text (Transact-sql).

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

sys.fn_get_sql ( SqlHandle )

Bağımsız değişkenler

  • SqlHandle
    Tanıtıcısı değerdir. SqlHandleise varbinary(64)hiçbir varsayılan ile.

Dönen Tablolar

Sütun adı

Veri türü

Açıklama

dbid

smallint

Veritabanı kimliği Geçici ve hazırlanmış sql deyimleri için ifadeler nerede derlendi veritabanı Kımlığı.

objectid

int

Veritabanı nesne Kımlığı. İse boş ad hoc sql deyimleri için.

number

smallint

Yordamları gruplandırılmışsa grubu sayısını gösterir.

0 = Girişleri yordamları değildir.

null = Ad hoc sql deyimleri.

encrypted

bit

Nesne şifrelenmiş olup olmadığını gösterir.

0 = Şifreli değil

1 Şifreli =

text

text

sql deyimi bir metindir. Olan şifreli nesneler için null.

Açıklamalar

Geçerli bir sql tanıtıcı sayfasından edinebilirsiniz sql_handlesütununda sys.dm_exec_requests (Transact-sql)dinamik yönetimi görünümü.

Eğer önbellekte, artık varolmayan bir tanıtıcı geçmek fn_get_sqlbir boş sonuç kümesi döndürür. Geçersiz bir tanıtıcı toplu durur geçmek ve bir hata iletisi döndürülür.

SQL Server Veritabanı AltyapısıBazı önbelleğe alamıyor Transact-SQLdeyimlerini, toplu kopyalama deyimleri ve 8 kb boyutundan büyük harflerden ile gibi. Adresinden alındı bu ifadeleri tanıtıcıları can't kullanarak fn_get_sql.

textSonuç kümesi sütun parolaları içeren metin için filtre uygulanmış. İzlenen değil daha fazla depolanan bilgiler hakkında güvenlikle ilgili yordamlar için bkz Izleme filtre.

Benzer bilgileri fn_get_sql işlevi dbcc INPUTBUFFER komut. dbcc INPUTBUFFER olamaz çünkü fn_get_sql işlevi kullanılabilir zaman örnekleri şunlardır:

  • Zaman olayları 255'ten fazla karakter var.

  • Ne zaman sen-si olmak-e saklı yordam en geçerli iç içe geçmiş düzeyini döndürmek. Örneğin, orada adlı iki saklı yordamlar sp_1ve sp_2. Eğer sp_1çağrıları sp_2ve tanıtıcı dan al sys.dm_exec_requestsdinamik yönetimi görünümü ise sp_2çalışıyor, fn_get_sqlişlev hakkında bilgi verir sp_2. Ayrıca, fn_get_sqlişlevi saklı yordam geçerli en yüksek iç içe düzeyinde tam metin.

İzinler

Kullanıcının sunucu üzerinde VIEW server state izni olması gerekir.

Örnekler

Veritabanı yöneticileri-ebilmek kullanma fn_get_sql, sorun süreçleri tanımlanmasına yardımcı olmak için aşağıdaki örnekte gösterildiği gibi işlev. Yönetici sorun oturum kimliği tanımlayan sonra yönetici sql tanıtıcı o oturumda, çağrı alabilirsiniz fn_get_sqlsonra kullanın ve tanıtıcı, başlangıç ve bitiş uzaklıklar sql metin sorun oturumun kimliğini belirlemek için

DECLARE @Handle varbinary(64);
SELECT @Handle = sql_handle 
FROM sys.dm_exec_requests 
WHERE session_id = 52 and request_id = 0;
SELECT * FROM sys.fn_get_sql(@Handle);
GO

DECLARE @Handle varbinary(64);
SELECT @Handle = sql_handle 
FROM sys.dm_exec_requests 
WHERE session_id = 52 and request_id = 0;
SELECT * FROM sys.fn_get_sql(@Handle);
GO

Ayrıca bkz.

Başvuru

dbcc INPUTBUFFER (Transact-sql)

sys.sysprocesses (Transact-sql)

sys.dm_exec_requests (Transact-sql)