· 8 years ago · Jan 22, 2018, 02:18 PM
1IF EXISTS (SELECT 1 FROM MYTABLE WHERE OBJ_NAME = '[OBJ_NAME]';
2
3IF EXISTS (SELECT 1 FROM MYTABLE WHERE OBJ_NAME = 'OBJ_NAME';
4
5CREATE TABLE TEST
6(
7 ID INT IDENTITY(1,1) PRIMARY KEY,
8 OBJECT sysname NOT NULL
9);
10GO
11
12INSERT INTO TEST VALUES ('[obj1]'),('obj2'),('obj3'),('[obj4]');
13GO
14
15IF OBJECT_ID('TEST') IS NOT NULL
16BEGIN
17 SELECT 'TEST EXISTS.' OBJECT_ID;
18END
19GO
20
21| OBJECT_ID |
22| :----------- |
23| TEST EXISTS. |
24
25IF OBJECT_ID('[TEST]') IS NOT NULL
26BEGIN
27 SELECT '[TEST] EXISTS.' OBJECT_ID;
28END
29GO
30
31| OBJECT_ID |
32| :------------- |
33| [TEST] EXISTS. |
34
35CREATE FUNCTION UNQUOTENAME(@TXT NVARCHAR(MAX))
36RETURNS NVARCHAR(MAX)
37AS
38 BEGIN
39 RETURN IIF(LEFT(@TXT, 1) = N'[' AND RIGHT(@TXT, 1) = N']',
40 SUBSTRING(@TXT, 2, LEN(@TXT) - 2),
41 @TXT);
42 END;
43GO
44
45SELECT dbo.UNQUOTENAME (N'[FIELD]') NAME1, N'FIELD' NAME2;
46GO
47
48NAME1 | NAME2
49:---- | :----
50FIELD | FIELD
51
52SELECT ID, OBJECT
53FROM TEST
54WHERE OBJECT LIKE 'obj%';
55GO
56
57ID | OBJECT
58-: | :-----
59 2 | obj2
60 3 | obj3
61
62SELECT ID, dbo.UNQUOTENAME(OBJECT)
63FROM TEST
64WHERE dbo.UNQUOTENAME(OBJECT) LIKE 'obj%';
65GO
66
67ID | (No column name)
68-: | :---------------
69 1 | obj1
70 2 | obj2
71 3 | obj3
72 4 | obj4