我做的版本簡單的東西是有道理的,爲什麼我在數據庫中已經有一個名爲'XXX'的對象?
IF EXISTS(SELECT * FROM sysobjects WHERE xtype = 'TF' AND name = 'GetGeographyFromSourceID')
BEGIN
DROP FUNCTION dbo.GetGeographyFromSourceID
END
GO
CREATE FUNCTION dbo.GetGeographyFromSourceID
(
@SourceID INT
)
RETURNS GEOGRAPHY
AS
BEGIN
DECLARE @Longitude FLOAT = 0;
DECLARE @Latitude FLOAT = 0;
DECLARE @Geo GEOGRAPHY;
SELECT @Longitude = Longitude,
@Latitude = Latitude
FROM Sources
WHERE ID = @SourceID;
SELECT @Geo = geography::STGeomFromText('POINT(' + CONVERT(VARCHAR(100), @Longitude) + ' ' + CONVERT(VARCHAR(100),@Latitude) + ')', 4326);
RETURN(@Geo)
END
如果存在比下降,並重新創建它。但我得到錯誤There is already an object named 'XXX' in the database?
它沒有下降....如果存在....嘗試使用另一個條件....像count;) – Hackerman 2013-02-27 15:42:23
剛剛檢查,發現它存在與類型FN。現在應該使用TF還是FN – user960567 2013-02-27 15:42:46
還有其他名字嗎?嘗試從sysobjects中執行select *,其中name ='GetGeographyFromSourceID',並查看它是否是某種其他對象類型。 - 啊,你剛剛做到了! – 2013-02-27 15:43:14