2 people like it.
Like the snippet!
46881 redhead ass pussy
91640 jasmine foxx model erotica [URL=http://sloopart.info/__media__/js/netsoltrademark.php?d=zionschool.info/babes/172312-hailey-right-place-ii-from-mpl.php]http://sloopart.info/__media__/js/netsoltrademark.php?d=zionschool.info/babes/172312-hailey-right-place-ii-from-mpl.php[/URL]
130235 cherry pimps nadia lopez june beautiful [URL=http://gcllimo.com/__media__/js/netsoltrademark.php?d=zionschool.info/sexy/187851-angela-white-latest-scene-features-hot.php]http://gcllimo.com/__media__/js/netsoltrademark.php?d=zionschool.info/sexy/187851-angela-white-latest-scene-features-hot.php[/URL]
10632 teen star kendra cole giving [URL=http://true-smoking-pleasure.net/__media__/js/netsoltrademark.php?d=zionschool.info/nude/29576-liebste-wuerde-ich-alle-lecken.php]http://true-smoking-pleasure.net/__media__/js/netsoltrademark.php?d=zionschool.info/nude/29576-liebste-wuerde-ich-alle-lecken.php[/URL]
55798 super german granny rita gilf [URL=https://www.fembio.org/english/biography.php?URL=https%3a%2f%2fzionschool.info%2fwet%2f82372-audiovideomeow-shadow-of-innsyermound-wetblush.php]https://www.fembio.org/english/biography.php?URL=https%3a%2f%2fzionschool.info%2fwet%2f82372-audiovideomeow-shadow-of-innsyermound-wetblush.php[/URL]
31710 more kristi curiali [URL=https://melissa-a-pedersen-dot-yamm-track.appspot.com/Redirect?ukey=1FL-xuaqwkuWuzciKBDyy1secF_1MP97MhfWutsYEKDs-127268884&key=YAMMID-53531248&link=https://zionschool.info/]https://melissa-a-pedersen-dot-yamm-track.appspot.com/Redirect?ukey=1FL-xuaqwkuWuzciKBDyy1secF_1MP97MhfWutsYEKDs-127268884&key=YAMMID-53531248&link=https://zionschool.info/[/URL]
33358 brunette milf babe deauxma and beautiful [URL=http://www.pccoc.com/__media__/js/netsoltrademark.php?d=zionschool.info/amateur/118647-scopata-amatoriale-vecchi-e-giovani-con.php]http://www.pccoc.com/__media__/js/netsoltrademark.php?d=zionschool.info/amateur/118647-scopata-amatoriale-vecchi-e-giovani-con.php[/URL]
104120 beautiful nude girls alexandra [URL=http://ww17.mbti.tw-mo.com/__media__/js/netsoltrademark.php?d=zionschool.info/]http://ww17.mbti.tw-mo.com/__media__/js/netsoltrademark.php?d=zionschool.info/[/URL]
161418 madison brunette babe finger babes [URL=http://www.recallrx.com/__media__/js/netsoltrademark.php?d=zionschool.info/]http://www.recallrx.com/__media__/js/netsoltrademark.php?d=zionschool.info/[/URL]
136270 thick blonde babe [URL=http://tv6f4q.yext-wrap.com/plclick?pid=4Diy12y2qo&ids=11334872&continue=https://zionschool.info/&target=specialOffer]http://tv6f4q.yext-wrap.com/plclick?pid=4Diy12y2qo&ids=11334872&continue=https://zionschool.info/&target=specialOffer[/URL]
81615 ines cudna nackt nacktbilder playboy nacktfotos [URL=https://www.352area.com/dashboard/redirect.php?page=/index.php/2015-07-05-12-56-35?size%3Deyes%2523&gaSection=home&CKtrack2=72&rurl=https://zionschool.info/]https://www.352area.com/dashboard/redirect.php?page=/index.php/2015-07-05-12-56-35?size%3Deyes%2523&gaSection=home&CKtrack2=72&rurl=https://zionschool.info/[/URL]
2945 sandrashinelive sandra shine corner [URL=https://arbetsvarlden.se/adserver/www/delivery/ck.php?oaparams=2__bannerid%3D33__zoneid%3D1__cb%3D9dbd1fa102__oadest%3Dhttps://zionschool.info/]https://arbetsvarlden.se/adserver/www/delivery/ck.php?oaparams=2__bannerid%3D33__zoneid%3D1__cb%3D9dbd1fa102__oadest%3Dhttps://zionschool.info/[/URL]
105893 queen creek brunette natural small tits [URL=http://sunriseimports.com.au/shop/trigger.php?r_link=https://zionschool.info/]http://sunriseimports.com.au/shop/trigger.php?r_link=https://zionschool.info/[/URL]
146027 anal these assholes i want [URL=http://track.westbusinessservices.com/default.aspx?id=3ce7f00a-5d60-4f39-a752-eed29579fe26&sid=477&link=https://zionschool.info/]http://track.westbusinessservices.com/default.aspx?id=3ce7f00a-5d60-4f39-a752-eed29579fe26&sid=477&link=https://zionschool.info/[/URL]
74347 anita pearl pleasures her pussy [URL=http://hudsonriver.us/__media__/js/netsoltrademark.php?d=zionschool.info/tits/37439-helen-huge-welsh-tits.php]http://hudsonriver.us/__media__/js/netsoltrademark.php?d=zionschool.info/tits/37439-helen-huge-welsh-tits.php[/URL]
47349 die bestbewerteten in der kategorie hot [URL=http://e.thegoodsnewsletter.com/tiamg40/c2.php?APNL/1268957033/3647671/H/N/V/https://zionschool.info/]http://e.thegoodsnewsletter.com/tiamg40/c2.php?APNL/1268957033/3647671/H/N/V/https://zionschool.info/[/URL]
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
|
module SQLCascadeTriggers =
open FSharp.Data
let [<Literal>] ConnectionString = @"Data Source=DBSERVER;Initial Catalog=DB;UID=xxx;PWD=xxx;"
let generateTriggers filter =
use cmd = new SqlCommandProvider<"""
SELECT PKSchema = PK.table_schema, PKTable = PK.table_name
, FKSchema = FK.table_schema, FKTable = FK.table_name
, PK.ordinal_position
, PKColumn = PK.column_name
, FKColumn = FK.column_name
, RC.*
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC
JOIN INFORMATION_SCHEMA.key_column_usage PK ON PK.constraint_catalog = RC.unique_constraint_catalog AND PK.constraint_schema = RC.unique_constraint_schema AND PK.constraint_name = RC.unique_constraint_name
JOIN INFORMATION_SCHEMA.key_column_usage FK ON FK.constraint_catalog = RC.constraint_catalog AND FK.constraint_schema = RC.constraint_schema AND FK.constraint_name = RC.constraint_name AND FK.ordinal_position = PK.ordinal_position
ORDER BY 1, 2, 3, 4, 5
""" , ConnectionString, ResultType = ResultType.Records>(ConnectionString)
let filteredRows =
cmd.Execute()
|> Seq.filter filter
|> Seq.cache
let depths =
filteredRows
|> Seq.map(fun row -> (row.PKSchema.Value, row.PKTable), (row.FKSchema.Value, row.FKTable))
|> Seq.distinct
|> (fun rows ->
let rec level table =
rows
|> Seq.filter(fun (p, ch) -> ch = table)
|> Seq.map fst
|> Seq.map (level >> (+) 1)
|> function
| s when Seq.isEmpty s -> 0
| s -> Seq.max s
rows
|> Seq.map snd
|> Seq.distinct
|> Seq.map (fun ch -> ch, level ch)
)
|> Map
let getDepth t = depths |> Map.tryFind t |> Option.defaultValue 0
filteredRows
//|> Seq.take 1
|> Seq.groupBy(fun row -> row.PKSchema.Value, row.PKTable)
|> Seq.collect(fun ((pschema, ptable), rows) ->
let constraints =
rows
|> Seq.groupBy(fun row -> (row.CONSTRAINT_SCHEMA, row.CONSTRAINT_NAME), (row.FKSchema.Value, row.FKTable))
|> Seq.sortByDescending(fst >> snd >> getDepth)
let foreigns =
constraints
|> Seq.collect(fun (((cschema, ctable), (fschema, ftable)), rows)->
let condf =
constraints
|> Seq.head
|> snd
|> Seq.map(fun row -> sprintf "FT.[%s] = D.[%s]" row.FKColumn.Value row.PKColumn.Value )
|> String.concat " AND "
[
sprintf " DELETE FROM [%s].[%s] " fschema ftable
sprintf " FROM [%s].[%s] FT " fschema ftable
sprintf " JOIN deleted D ON %s;" condf
]
)
let condp =
constraints
|> Seq.head
|> snd
|> Seq.map(fun row -> sprintf "PT.[%s] = D.[%s]" row.PKColumn.Value row.PKColumn.Value )
|> String.concat " AND "
[
yield sprintf "IF EXISTS (SELECT * FROM sys.objects o JOIN sys.schemas s ON s.schema_id = o.schema_id "
yield sprintf " WHERE s.name = '%s' AND o.name = '%s_DELETE_TG')" pschema ptable
yield sprintf " DROP TRIGGER [%s].[%s_DELETE_TG]" pschema ptable
yield sprintf "GO"
yield sprintf "-- generated in F#Station: basic18.snippets FSI ZONE/SQLCascadeTriggers"
yield sprintf "CREATE TRIGGER [%s].[%s_DELETE_TG]" pschema ptable
yield sprintf " ON [%s].[%s]" pschema ptable
yield sprintf " INSTEAD OF DELETE AS "
yield sprintf "BEGIN"
yield sprintf " SET NOCOUNT ON;"
yield! foreigns
yield sprintf " DELETE FROM [%s].[%s] " pschema ptable
yield sprintf " FROM [%s].[%s] PT " pschema ptable
yield sprintf " JOIN deleted D ON %s;" condp
yield sprintf "END"
yield sprintf "GO"
]
)
|> Seq.iter (printfn "%s")
()
generateTriggers (fun row -> row.PKTable.StartsWith "Clc_" || row.PKTable.StartsWith "RLE_" )
|
Multiple items
namespace FSharp
--------------------
namespace Microsoft.FSharp
Multiple items
namespace FSharp.Data
--------------------
namespace Microsoft.FSharp.Data
Multiple items
type LiteralAttribute =
inherit Attribute
new : unit -> LiteralAttribute
--------------------
new : unit -> LiteralAttribute
val ConnectionString : string
val generateTriggers : filter:('a -> bool) -> unit
val filter : ('a -> bool)
val cmd : System.IDisposable
type SqlCommandProvider
<summary>Typed representation of a T-SQL statement to execute against a SQL Server database.</summary>
<param name='CommandText'>Transact-SQL statement to execute at the data source.</param>
<param name='ConnectionStringOrName'>String used to open a SQL Server database or the name of the connection string in the configuration file in the form of “name=<connection string name>”.</param>
<param name='ResultType'>A value that defines structure of result: Records, Tuples, DataTable, or SqlDataReader.</param>
<param name='SingleRow'>If set the query is expected to return a single row of the result set. See MSDN documentation for details on CommandBehavior.SingleRow.</param>
<param name='ConfigFile'>The name of the configuration file that’s used for connection strings at DESIGN-TIME. The default value is app.config or web.config.</param>
<param name='AllParametersOptional'>If set all parameters become optional. NULL input values must be handled inside T-SQL.</param>
<param name='ResolutionFolder'>A folder to be used to resolve relative file paths to *.sql script files at compile time. The default value is the folder that contains the project or script.</param>
<param name='DataDirectory'>The name of the data directory that replaces |DataDirectory| in connection strings. The default value is the project or script directory.</param>
<param name='TempTableDefinitions'>Temp tables create command.</param>
<param name='TableVarMapping'>List table-valued parameters in the format of "@tvp1=[dbo].[TVP_IDs]; @tvp2=[dbo].[TVP_IDs]"</param>
type ResultType =
| Records = 0
| Tuples = 1
| DataTable = 2
| DataReader = 3
ResultType.Records: ResultType = 0
val filteredRows : seq<'a>
module Seq
from Microsoft.FSharp.Collections
val filter : predicate:('T -> bool) -> source:seq<'T> -> seq<'T>
val cache : source:seq<'T> -> seq<'T>
val depths : Map<(string * string),int>
val map : mapping:('T -> 'U) -> source:seq<'T> -> seq<'U>
val row : 'a
val distinct : source:seq<'T> -> seq<'T> (requires equality)
val rows : seq<(string * string) * (string * string)>
val level : (string * string -> int)
val table : string * string
val p : string * string
val ch : string * string
val fst : tuple:('T1 * 'T2) -> 'T1
val s : seq<int>
val isEmpty : source:seq<'T> -> bool
val max : source:seq<'T> -> 'T (requires comparison)
val snd : tuple:('T1 * 'T2) -> 'T2
Multiple items
module Map
from Microsoft.FSharp.Collections
--------------------
type Map<'Key,'Value (requires comparison)> =
interface IReadOnlyDictionary<'Key,'Value>
interface IReadOnlyCollection<KeyValuePair<'Key,'Value>>
interface IEnumerable
interface IComparable
interface IEnumerable<KeyValuePair<'Key,'Value>>
interface ICollection<KeyValuePair<'Key,'Value>>
interface IDictionary<'Key,'Value>
new : elements:seq<'Key * 'Value> -> Map<'Key,'Value>
member Add : key:'Key * value:'Value -> Map<'Key,'Value>
member ContainsKey : key:'Key -> bool
...
--------------------
new : elements:seq<'Key * 'Value> -> Map<'Key,'Value>
val getDepth : (string * string -> int)
val t : string * string
val tryFind : key:'Key -> table:Map<'Key,'T> -> 'T option (requires comparison)
module Option
from Microsoft.FSharp.Core
val defaultValue : value:'T -> option:'T option -> 'T
val groupBy : projection:('T -> 'Key) -> source:seq<'T> -> seq<'Key * seq<'T>> (requires equality)
val collect : mapping:('T -> #seq<'U>) -> source:seq<'T> -> seq<'U>
val pschema : string
val ptable : string
val rows : seq<'a>
val constraints : seq<((obj * obj) * (string * string)) * seq<'a>>
val sortByDescending : projection:('T -> 'Key) -> source:seq<'T> -> seq<'T> (requires comparison)
val foreigns : seq<string>
val cschema : obj
val ctable : obj
val fschema : string
val ftable : string
val condf : string
val head : source:seq<'T> -> 'T
val sprintf : format:Printf.StringFormat<'T> -> 'T
module String
from Microsoft.FSharp.Core
val concat : sep:string -> strings:seq<string> -> string
val condp : string
val iter : action:('T -> unit) -> source:seq<'T> -> unit
val printfn : format:Printf.TextWriterFormat<'T> -> 'T
val row : obj
More information