我正在嘗試將新 IP 地址行添加到名為 IP Alloc 的現有表中,但沒有添加任何行。我也沒有收到錯誤。怎么了?
SELECT
*
FROM
IP_Alloc
BEGIN
DECLARE @IPaddress VARCHAR
SET @IPaddress = '.'
DECLARE @IPoct1 VARCHAR
SET @IPoct1 = 10
DECLARE @IPoct2 VARCHAR
SET @IPoct2 = 200
DECLARE @IPoct3 VARCHAR
SET @IPoct3 = 20
DECLARE @IPoct4 INT
SET @IPoct4 = 0
END
WHILE (@IPoct4 < 256)
BEGIN
SET @IPaddress = CONCAT(@IPoct1,'.', @IPoct2,'.' , @IPoct3,'.', @IPoct4);
INSERT INTO IP_Alloc (site, area, line, Device, deviceDescription, PartNo, IPaddress, deviceType, MACaddress, comment, IPoct1, IPoct2, IPoct3, IPoct4, created, hostName, modelNo, modified, revision, series, switchPort, visible, wallPlate)
--Generic values, to be changed later
VALUES ('BIL', 'area', 'line', 'Device', 'deviceDescription', 'PartNo', @IPaddress, 'deviceType', 'MACaddress','comment', @IPoct1, @IPoct2, @IPoct3, @IPoct4, '0000-00-00', 'hostName', 'modelNo', '0000-00-00', 'revision', 'series', 'switchPort', '0', 'wallPlate')
SET @IPoct4 = @IPoct4 1
END
uj5u.com熱心網友回復:
因此,您的資料型別宣告存在一些問題。@IPoct4 需要是一個 int ,因為您已經能夠遍歷該變數。
@IPaddress 需要是 VARCHAR,因為它有一個 . 但是,您需要添加長度宣告。如果未指定,則長度默認為 1。 VARCHAR(15) 將足以用于 ip 地址。
然后對于@IPoct1、@IPoct2、@IPoct3,您當前將它們指定為 varchar,但是您使用不帶語音標記的數字設定它們。您只能在定義 INT 時這樣做。你最好把它定義為一個 int
你也有一個也不需要的開始和結束。所以你的查詢會變成:
DECLARE @IPaddress VARCHAR(15)
SET @IPaddress = '.'
DECLARE @IPoct1 INT
SET @IPoct1 = 10
DECLARE @IPoct2 INT
SET @IPoct2 = 200
DECLARE @IPoct3 INT
SET @IPoct3 = 20
DECLARE @IPoct4 INT
SET @IPoct4 = 0
WHILE (@IPoct4 < 256)
BEGIN
SET @IPaddress = CONCAT(@IPoct1,'.', @IPoct2,'.' , @IPoct3,'.', @IPoct4);
INSERT INTO IP_Alloc (site, area, line, Device, deviceDescription, PartNo, IPaddress, deviceType, MACaddress, comment, IPoct1, IPoct2, IPoct3, IPoct4, created, hostName, modelNo, modified, revision, series, switchPort, visible, wallPlate)
--Generic values, to be changed later
VALUES ('BIL', 'area', 'line', 'Device', 'deviceDescription', 'PartNo', @IPaddress, 'deviceType', 'MACaddress','comment', @IPoct1, @IPoct2, @IPoct3, @IPoct4, '0000-00-00', 'hostName', 'modelNo', '0000-00-00', 'revision', 'series', 'switchPort', '0', 'wallPlate')
SET @IPoct4 = @IPoct4 1
END
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/484266.html
標籤:sql sql服务器 sql-server-2008 点火
上一篇:套接字連接失敗時如何不崩潰
