sys.fn_get_sql (Transact-sql)
sql deyimi için belirtilen sql tanıtıcı metin döndürür.
Ö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). |
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)