· 6 years ago · Aug 02, 2019, 07:04 PM
1--Attempt 1 (FAILS)
2IF EXISTS (SELECT * FROM sys.assemblies WHERE name = 'SQL_CLR_Functions')
3BEGIN
4 CREATE FUNCTION dbo.CLR_CharList_Split(@list nvarchar(MAX), @delim nchar(1) = N',')
5 RETURNS TABLE (str nvarchar(4000)) AS EXTERNAL NAME SQL_CLR_Functions.[Library.SQL.CLR.Functions].CLR_CharList_Split
6END
7
8--Attempt 2 (FAILS)
9BEGIN TRY
10 CREATE FUNCTION dbo.CLR_CharList_Split(@list nvarchar(MAX), @delim nchar(1) = N',')
11 RETURNS TABLE (str nvarchar(4000)) AS EXTERNAL NAME SQL_CLR_Functions.[Library.SQL.CLR.Functions].CLR_CharList_Split
12END TRY
13BEGIN CATCH
14END CATCH
15
16--Attempt 3 (FAILS)
17IF NOT EXISTS (SELECT * FROM sys.assemblies WHERE name = 'SQL_CLR_Functions')
18BEGIN
19 GOTO END_CLR;
20END
21GO
22CREATE FUNCTION dbo.CLR_CharList_Split(@list nvarchar(MAX), @delim nchar(1) = N',')
23RETURNS TABLE (str nvarchar(4000)) AS EXTERNAL NAME SQL_CLR_Functions.[Library.SQL.CLR.Functions].CLR_CharList_Split
24GO
25END_CLR:
26
27--Attempt 4 (WORKS!!!)
28IF EXISTS (SELECT * FROM sys.assemblies WHERE name = 'SQL_CLR_Functions')
29BEGIN
30 EXEC (N'CREATE FUNCTION dbo.CLR_CharList_Split(@list nvarchar(MAX), @delim nchar(1) = N'','')
31 RETURNS TABLE (str nvarchar(4000)) AS EXTERNAL NAME SQL_CLR_Functions.[Library.SQL.CLR.Functions].CLR_CharList_Split')
32END
33
34IF NOT EXISTS (SELECT * FROM sys.assemblies WHERE name = 'SQL_CLR_Functions')
35 SET NOEXEC ON
36GO
37CREATE FUNCTION dbo.CLR_CharList_Split(@list nvarchar(MAX), @delim nchar(1) = N',')
38RETURNS TABLE (str nvarchar(4000)) AS EXTERNAL NAME SQL_CLR_Functions.[Granite.SQL.CLR.Functions].CLR_CharList_Split
39GO
40SET NOEXEC OFF