SQL Server building variables for query
I'm having problems in simplifying this query.
I need to make 12 a variable so I'll only have to set it once and also the
%BrightSide08.
Because I need to repeat this with different names and lengths.
Declare @len int, @name varchar
SET @len = 12
SET @name = '%BrightSide08'
UPDATE CHAR_DATA0
SET CHAR_DATA = (SELECT CHAR_DATA FROM xtreme.dbo.CHAR_DATA0
WHERE CONVERT(VARCHAR(12), SUBSTRING(CHAR_DATA, 9, 16))
LIKE '%BrightSide08')
WHERE CHAR_KEY = (
SELECT top (1) CHAR_KEY
FROM CHAR_DATA0
WHERE USER_KEY = (SELECT USER_KEY FROM xtreme.dbo.CHAR_DATA0
WHERE CONVERT(VARCHAR(12), SUBSTRING(CHAR_DATA, 9, 16))
LIKE '%BrightSide08')
)
UPDATE CHAR_INFOR
SET CHARID0 = (SELECT CONVERT(VARCHAR(12), SUBSTRING(CHAR_DATA, 9, 16))
FROM xtreme.dbo.CHAR_DATA0
WHERE CONVERT(VARCHAR(12), SUBSTRING(CHAR_DATA, 9, 16))
LIKE '%BrightSide08')
WHERE USER_KEY = (
SELECT top (1) USER_KEY
FROM CHAR_DATA0
WHERE USER_KEY = (SELECT USER_KEY FROM xtreme.dbo.CHAR_DATA0
WHERE CONVERT(VARCHAR(12), SUBSTRING(CHAR_DATA, 9, 16))
LIKE '%BrightSide08')
)
SELECT *
FROM CHAR_DATA0
WHERE USER_KEY = (SELECT USER_KEY FROM xtreme.dbo.CHAR_DATA0
WHERE CONVERT(VARCHAR(12), SUBSTRING(CHAR_DATA, 9, 16))
LIKE '%BrightSide08')
SELECT *
FROM [game].[dbo].[CHAR_INFOR]
WHERE USER_KEY = (
SELECT top (1) USER_KEY
FROM game.dbo.CHAR_DATA0
WHERE USER_KEY = (SELECT USER_KEY FROM xtreme.dbo.CHAR_DATA0
WHERE CONVERT(VARCHAR(12), SUBSTRING(CHAR_DATA, 9, 16))
LIKE '%BrightSide08')
)
Am I missing something? Please correct me. Thank you.
No comments:
Post a Comment